首页 > 编程语言 >JAVA基础语法

JAVA基础语法

时间:2024-07-25 17:07:27浏览次数:15  
标签:类型转换 运算符 JAVA 运算 int 数据类型 基础 语法 Java

JAVA基础语法

1.关键字和保留字

1.1 关键字

对Java的编译器有特殊的意义,他们用来表示一种数据类型或者表示程序的结构。
关键字中所有字母都为小写,目前共计50个(包括2个保留字)。

1.2 保留字

保留字是为Java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。

1.3 总览

2.标识符

凡是可以由自己命名的地方都称为标识符。
  例如,对于常量、变量、函数、语句块、类、项目等都需要一个名字,这些我们都统统称为标识符。

2.1 命名规则

1.标识符有字母、数字、_(下划线)、$所组成,其中不能以数字开头,不能用Java中的保留字(关键字)
2.标识符采用有意义的简单命名
3."$"不要在代码中出现。(是由于在后面内部类中,编译后会出现$符号)

2.2 命名规范(驼峰命名法)

  • 类名和接口名:每个单词的首字母,其余为小写。(大驼峰)
  • 方法名:第二个单词起的首字母为大写,其余全为小写。(小驼峰)
  • 常量名:基本数据类型的常量名使用全部大写字母,字与字之间用下划线分隔

3.变量

在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在内存单元中,每个内存单元都用一个标识符来标识,这些用于标识内存单元的标识符就称为变量,内存单元中储存的数据就是变量的值。

数据处理时程序的基本功能,变量是程序中数据的载体。因此变量在程序中占有重要的地位。小伙伴们应理解程序中变量的意义与功能,后续的学习中将会引导大家学习如何定义、使用不同类型的变量,以及如何在程序中对变量进行运算。

4.数据类型

Java的数据类型只有两大类:8大基本数据类型与引用数据类型。

4.1 基本数据类型

  • 基本数据类型:6种数字类型(byte/short/int/long/float/double)、1种字符型(char)、1种布尔型(boolean)

char 数据类型可以储存任何字符。

4.2引用数据类型

在Java中,引用数据类型指的是那些不是Java基本数据类型(如int、float、double等)的数据类型。Java的引用数据类型主要指的是对象,它们存储在堆内存中,并且通过引用(或指针)来访问。以下是Java中一些常见的引用数据类型:

  1. Object - 所有Java类的基类,可以创建Object类型的引用来指向任何对象。
  2. String - 字符串类型,虽然在Java中String是不可变的,但它实际上是一个对象。
  3. Array - 数组类型,可以是基本数据类型的数组,也可以是引用类型的数组。
  4. Class Instances - 类实例,任何自定义类的实例都是引用数据类型。
  5. Collections - 集合框架中的各种类型,如ArrayList、LinkedList、HashMap、HashSet等,它们都是实现了Collection或Map接口的类。
  6. Interfaces - 接口,虽然接口本身不是引用类型,但接口的实现通常是类,因此它们的实例是引用类型。
  7. Enums - 枚举,虽然枚举在Java中是特殊的类类型,但它们可以被当作类实例来使用。
  8. Wrapper Classes - 包装类,如Integer、Float、Double等,它们是基本数据类型的包装类,用于将基本数据类型包装成对象。

Java中所有的类、接口、数组以及枚举类型都是引用数据类型。当创建这些类型的实例时,实际上是在堆内存中创建对象,并将对象的引用地址赋给变量。这些变量实际上是指向堆内存中对象的引用,而不是对象本身

5.数据类型的转换

5.1 自动类型转换(隐式类型转换)

自动类型转换是指在赋值或运算时,较小范围的数据类型自动转换为较大范围的数据类型。这种转换是安全的,不会丢失数据。常见的自动类型转换包括:

将整数类型(如byte、short、char)转换为较大的整数类型(如int、long)。
将较小范围的浮点数类型(如float)转换为较大范围的浮点数类型(如double)。
将基本数据类型转换为对应的包装类类型(如int转换为Integer)。
例如:

java
byte b = 10;
int i = b; // 自动类型转换,byte到int
double d = 10.5;
float f = d; // 自动类型转换,double到float

5.2 强制类型转换(显式类型转换)

强制类型转换是指将一个较大范围的数据类型转换为较小范围的数据类型。这种转换可能会丢失数据,因此需要程序员显式指定。常见的强制类型转换包括:

将较大的整数类型(如long)转换为较小的整数类型(如byte、short、int)。
将较大的浮点数类型(如double)转换为较小的浮点数类型(如float)。
将包装类类型转换为基本数据类型。
例如:

java
int i = 10;
byte b = (byte) i; // 强制类型转换,int到byte
double d = 10.5;
float f = (float) d; // 强制类型转换,double到float
Integer iObj = 10;
int iPrim = iObj.intValue(); // 包装类到基本数据类型

5.3注意事项

  • 数据丢失:在进行强制类型转换时,可能会丢失数据。例如,将一个较大的整数转换为较小的整数类型时,可能会丢失高位的值。
  • 类型安全:Java是强类型语言,类型转换需要明确指定,编译器会检查类型转换的合法性。
  • 包装类和基本数据类型:基本数据类型和其对应的包装类之间可以自动类型转换,但包装类到基本数据类型需要显式转换。

6.运算符

6.1 算术运算符

算术运算符都是双目运算符,即连接两个操作数的运算符。优先级上,*、/、% 具有相同运算级别,并高于 +、-(+、- 具有相同级别)

加法运算:+
减法运算:-
乘法运算:*
除法运算:/,(另外,整型之间的除法运算是整除,这也就意味着2 / 4的结果为0,如果我们想像数学一样得到一个小数,可以使用浮点类型的操作数。)
取模运算:%(要求两个整型数字相除取余数)

6.2 自增(++)、自减(- -)运算符

++ 或 - - 是单目运算符,放在操作数的前面或后面都是允许的。

++运算,变量自增长1;- -运算,变量自减少1。

那么如果有一个变量i,++i和i++有什么区别呢?

独立运算时:i++和++i没有区别,都是实现自动加1的功能

混合运算时:i++和++i就不同了

1.++/- -在先,先运算后取值

int a = 1;
int b = ++a;
System.out.println(a);//计算结果是2
System.out.println(b);//计算结果是2

前++/- -时,就相当于变量a先自增1,再把值赋给b;

2.++/- -在后,先取值后运算

int a = 1;
int b = a++;//这就等价于 int b=a;a=a+1;
System.out.println(a);//计算结果是2
System.out.println(b);//计算结果是

后++/- -时,就相当于变量a先把值赋给b,再自增1;

注意:

自增/自减运算可以用于整数类型 byte、short、int、long,浮点类型 float、double,以及字符串类型 char。
在 Java 1.5 以上版本中,自增/自减运算可以用于基本类型对应的包装器类 Byte、Short、Integer、Long、Float、Double 和 Character。

6.3 赋值运算符

赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“=”,例如 int a=2.
它是双目运算符,左边的操作数必须是变量,不能是常量或表达式。

记住在Java中两个数相等用的符号是,而=是赋值运算符。
例如 int a=1,int b=1,如果表示a等于b,则是a
b

赋值运算符可以和算数运算符组成复合赋值运算:

等于号:=(用于给变量赋值)
加等于:+=
减等于:-=
乘等于:*=
除等于:/=
取模等于:%=

6.4 关系运算符

关系运算符用来比较两个值的关系。关系运算符是二元运算符,运算结果是 boolean 型。当运算符对应的关系成立时,运算结果是 true,否则是 false。

  • 相等:==(如果判断正确结果为true)
  • 小于号:<
  • 大于号:>
  • 小于等于:<=
  • 大于等于:>=
  • 不等于:!=

6.5. 逻辑运算符

逻辑运算符分为:

  • 短路逻辑运算符
  • 逻辑运算符
    短路逻辑运算符 与 逻辑运算符 的区别是:
    逻辑运算符:先走一遍,在判断
    短路逻辑运算符:一但符合条件,后面的判断不走
    注意:短路与(&&)和短路或(||)能够采用最优化的计算方式,从而提高效率。在实际编程时,应该优先考虑使用短路与和短路或。
  1. 逻辑运算符

逻辑运算符:&、|、^、!

  1. 短路逻辑运算符

短路逻辑运算符:&&、||

双与:&&(全真才是真)
单与:&(全真才是真)
双或:||(全假才是假)
单或:|(全假才是假)
取反:!

6.6 >,>>和>>> 的使用和区别

  • “>” 表示大于,如:if(a>b)…结果是boolean类型

  • ">>“在c++中,移位运算符有双目移位运算符:<<(左移)和>>(右移)。移位运算符组成的表达式也属于算术表达式,其值为算术值。左移运算是将一个二进制位的操作数按指定移动的位数向左移位,移出位被丢弃,右边的空位一律补0。右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位,这由不同的机器而定。在使用补码作为机器数的机器中,正数的符号位为0,负数的符号位为1,
    说白了,就是把要移动的数转换成2进制,右移几位就去掉右边的几位数,左移几位就在右边加几个0,比如14右移2位就是转成二进制变成1110,去掉右边的10,变成11,11转成十进制就是3;左移2位就是111000,转成十进制就是56。
    例如:如:int i=15; i>>2的结果是3,移出的部分将被抛弃。
    转为二进制的形式可能更好理解,
    0000 1111(15)右移2位的结果是0000 0011(3),
    0001 1010(18)右移位的结果是0000 0011(3)。

  • ”>>>" 表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。
    例如:res = 20 >> 2;
    20的二进制为 0001 0100,右移2位后为 0000 0101,则结果就为 res =5;
    res = -20 >> 2;
    -20的二进制为 1110 1011,右移2位,此时高位补0,即 0011 1010,结果为 res =- 5;
    左移没有<<<运算符!

标签:类型转换,运算符,JAVA,运算,int,数据类型,基础,语法,Java
From: https://www.cnblogs.com/zpjd/p/18323664

相关文章

  • HTTP的相关基础知识
    目录一、概念二、特点三、请求数据的格式四、GET和POST请求区别五、响应数据的格式六、常见HTTP响应头七、响应状态码八、常见的响应状态码一、概念超文本传输协议:规定了浏览器和服务器之间数据传输的规则传输数据的规则:客户端浏览器和服务器之间进行数据交互,传......
  • 深入探讨 SpringMVC:从基础到高级应用
    深入探讨SpringMVC:从基础到高级应用在现代Java开发中,SpringMVC是一个不可或缺的框架。它不仅简化了Web应用的开发,还提供了强大的功能和灵活性。今天,我们将深入探讨SpringMVC,从基础概念到高级应用,带你全面了解这个强大的框架。1.什么是SpringMVC?SpringMVC是Spring框......
  • 使用Spring Boot和Netty打造高性能聊天服务(一):基础入门
    使用SpringBoot和Netty打造高性能聊天服务(一):基础入门在现代互联网应用中,实时聊天功能已经成为了许多应用的标配。无论是社交应用、在线客服系统,还是游戏中的实时交流,聊天功能都扮演着重要角色。今天,我们将使用SpringBoot和Netty来构建一个高性能的聊天服务。本文是系列文章的第......
  • 单片机基础知识
    一、CPU大致工作原理单片机(MCU)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一......
  • JAVA反射
    JAVA反射一、什么是反射二、反射的应用2.1Class类2.2获取类的成员变量2.3获取成员方法2.4获取构造函数2.5通过反射创建对象2.6通过反射修改属性(常用)2.7通过反射调用方法(常用)三、常见面试题3.1怎么给类中私有属性赋值一、什么是反射反射就是把java类中的各......
  • mysql常用语法
    MySQL约束注释--单行注释/*多行注释*/#井号注释MySQL命令执行顺序FROM>ON>JOINWHERE>GROUPBY>HAVING+聚合函数>SELECT>ORDERBY>LIMIT数据库设计——DDLshowdatabases; --查看当前所有的数据库use[数据库名]; --打开指定的数据库showtab......
  • java跨平台原理
    跨平台是指程序可以在多种平台(MicrosoftWindows、AppleMacintosh和Linux等)上运行,即编写一次,随处运行(WriteOnce,RunAnywhere)。Java语言通过为每个计算机系统提供一个叫做Java虚拟机的环境来实现跨平台。Java虚拟机是可运行Java字节码的虚拟计算机系统。可以将Java虚拟机看成......
  • JavaSE笔记
    目录一、JAVA基础编程二、第一阶段--JAVA基本语法2.1关键字与保留字2.2标识符2.3变量2.4运算符2.5从键盘获取输入Scanner类2.6流程控制结构2.7循环结构番外篇--软件开发流程番外篇--IDEA使用经验IDEA项目结构2.8一维数组数组的特点2.8.1声明与初始化2.8.1.1静态初始化2.......
  • JavaWeb第一天
    目录HTML+CSS+JS学习VUE框架学习Ajax--异步JavaScript和XMLVue项目结构MavenMaven坐标依赖管理传递依赖&排除依赖依赖范围生命周期Web入门springboot快速入门HTTP协议HTTP请求数据格式HTTP响应数据格式Tomcat请求响应1、请求请求参数设置2、响应3、案例4、分层解耦三层架构分层解......
  • JavaWeb第二天
    目录tlias案例实践登录校验1,Cookie技术——存储在客户端2,Session技术——存储在服务端3,令牌Token技术JWT(JSONWebToken)令牌4,过滤器Filter定义过滤器Filter拦截路径过滤器链5、拦截器interceptor6、全局异常处理器7、Spring事务管理事务进阶——事务属性AOP——面向切面编......