1.Java的5种基本语法元素
1.1注释 :
注释就是用来解释代码的。 单行(//注释内容) 多行(/* …*/) 文档(/** … */)
1.2分隔符:
分隔符有空白分隔符,注释,普通分隔符三种。
空白分隔符包括空格(SP,space),制表符(‘\t’,Tab键),走纸换页(‘\f’),回车(‘\r’)和换 行(‘\n’)。
普通分隔符:圆括号“( )”,花括号“{ }”,方括号“[ ]”,分号“;”,逗号“,”,点“.”,冒号“:”
1.3关键字:
也称保留字。就是被我们Java语言赋予了特殊意义的英文单词,其他地方就不能用了。特点是它的单词全是小写。如果说你用的是第三方记事本,那么蓝色显示的单词就是关键字。
1.4标识符:
就是给类,方法,变量,类型,数组和文件等进行命名。
规则:
1.由字母,下划线,美元符号和数字组成的字符串。
2.第一个字符只能是数字除外的字符。
3.不能是关键字,布尔常量,null。
1.5运算符:
运算符就是用来对常量和变量进行操作的符号。
1.5.1算数运算符:
根据操作数的不同,往往分为单目运算符(1个操作数)和双目运算符(2个操作数)。自加自减若单独运算则自加自减1。若参与运算,放在操作数的前面,先自增或者自减,然后再参与运算。放在操作数的后面,先参与运算,再自增或者自减。
运算符 | 含义 | 举例 | 备注 |
---|---|---|---|
++ | 自增 | x++ | 后缀运算符,相当于x=x+1 |
- - | 自减 | x– | 后缀运算符,相当于x=x-1 |
++ | 自加 | ++x | 单目运算符,相当于x=x+1 |
– | 自减 | –x | 单目运算符,相当于x=x-1 |
+ | 取正值 | +(x+y) | 单目运算符 |
- | 取负值 | -(x-y) | 单目运算符 |
* | 乘法 | x * y | 双目运算符 |
/ | 除法 | x/z | 双目运算符 |
% | 求余 | x%y | 双目运算符 |
+ | 加法 | x+y | 双目运算符 |
- | 减法 | x-y | 双目运算符 |
1.5.2关系运算符:
== ,!= , < , > , <= , >= ,其结果是布尔类型的值ture或者false。
1.5.3逻辑运算符:
&(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)
- &逻辑与: 有false则false。
- |逻辑或: 有true则true。
- ^逻辑异或: 相同为false,不同为true。
- !逻辑非: 非false则true,非true则false。特点:偶数个不改变本身。
- &&,||: 其结果和&,|一样。&&左边假右边不执行。||左边真右边不执行。
1.5.4位运算符:
&(与),|(或),^(异或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移),位运算是直接对二进制补码进行运算。
- &: 有0则0
- |: 有1则1
- ^: 相同则0,不同则1。一个数据被另一个数据位异或两次,该数本身不变
- ~: 按位取反 0变1 1变0
- 左移(<< ) 空位补0,被移除的高位丢弃。把<<左边的数据乘以2的移动次幂 例如 10<<3 结果 10*2^3=80
- 右移(>>) 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1。 把>>左边的数据除以2的移动次幂 例如 40>>3 结果 40/2 ^ 3=5
- 无符号右移(>>>) 被移位二进制最高位无论是0或者是1,空缺位都用0补
1.5.5赋值运算符:
=, +=,-=,* =,/=,%=
- 基本的赋值运算符:= 把=右边的数据赋值给左边。
- 扩展的赋值运算符:+=,-=,斜体样式= ,/=,%= += 把左边和右边做加法,然后赋值给左边。
- 赋值运算符要求左边的数据必须是一个变量。
1.5.6三元(三目)运算符:
- 格式:(关系表达式) ? 表达式1 : 表达式2;
- 三元运算符的执行流程: 计算关系表达式的值,如果为true, 运算后的结果是表达式1; 如果为false,运算后的结果是表达式2;
例如 int a=(1>2)?3:4; a=4
2.数据类型
- 数据分为基本数据类型和引用数据类型。基本数据类型分为整数类型,浮点类型,字符类型,布尔类型。简称4型8类。引用数据类型分为类,接口,数组。
- 整数默认int型,小数默认double型。
2.1整数类型:
类型 | 存储 | 表示范围 |
---|---|---|
byte | 1(8bit) | -128 ~ 127 |
short | 2(16bit) | -2^15 ~ 2^15 - 1 |
int | 4(32bit) | -2^31 ~ 2^31 - 1 |
long | 8(64bit) | -2^63 ~ 2^63 - 1 |
2.2浮点类型:
类型 | 存储 | 表示范围 |
---|---|---|
float | 4(32bit) | -3.40310^38 ~ 3.40310^38 |
double | 8(64bit) | -1.79810^308 ~ 1.79810^308 |
2.3布尔类型:
类型 | 存储 | 表示范围 | 备注 |
---|---|---|---|
boolean | 1(bit) | -128 ~ 127 | 它的值只有ture和flase(小写) |
2.4字符类型:
类型 | 存储 | 表示范围 |
---|---|---|
char | 2(16bit) | 0 ~ 2^16 - 1 = 65535 |
3.常量
- 常量就是在程序执行时不发生变化的量。
- 整数常量: 二进制(0b)八进制(0)十进制 十六进制(0x或0X)
- 小数常量: 所有小数
- 布尔常量: 只有true和false
- 字符常量: 用单引号括起来的内容,单引号中只能是单个字母,单个数字,单个符号。‘a’,‘A’,’ 0’分别为97,65,48
- 字符串常量: 用双引号括起来的内容
- null常量: 空常量
4.变量
- 在程序执行过程中,在某个范围内其值可以改变的量。其实就是内存中开辟的一块区域。
- 用来不断的存放同一类型的常量,并可以重复使用。
- 变量的定义格式:数据类型 变量名 = 变量值 ;
5.类型转换
5.1自动类型转换:
- boolean类型不能转换为其他的数据类型
- byte,short,char—int—long—float—double
- byte,short,char之间不转换,他们参与运算首先转换为int类型
5.2强制类型转换:
- 格式:目标数据类型 变量名=(目标数据类型)(被转换的数据);
- 尽量不要做强制转换会发生精度损失。