关键字
小写,带颜色,有特殊的含义
标识符
自己定义的
类名:大驼峰 HelloWord
变量名:小驼峰 helloWord
数据类型
基本数据类型
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
字节型 | byte | 1个字节 | -128~127 |
短整型 | short | 2个字节 | -32768~32767 |
整型 | int | 4个字节 | -231~231-1 |
长整型 | long | 8个字节 | -263~263-1 |
单精度浮点数 | float | 4个字节 | 1.4013E-45~3.4028E+38 |
双精度浮点数 | double | 8个字节 | 4.9E-324~1.7977E+308 |
字符型 | char | 2个字节 | 0~65535(可以使中文) |
布尔型 | bollen | 1个字节 | true,false |
==默认double=
引用数据类类型
字符串,数组,类,接口,Lambda
变量
byte,short,char计算时会先变为int后计算
byte a =20;
byte b=30;
byte c=a+b;//报错这里a+b变成int会报数据溢出错误
int c=a+b;/byte c=byte(a+b);强制类型转换
boolen不能发生数据类型转换
逻辑运算符
与&&或||具有短路效果,如果据左边已经可以判断出来结果,那么右边代码不再执行,从而节约性能。
编译器的两点优化
对于byte/short/char 三种类型来说,如果左侧赋值的数值没有超过范围,那么javac编译器会自动隐含的为我们不上一个(byte)(short)(char)。
1.如果没有超过左侧范围,编译器补上强转。
2.如果右侧超过了左侧的范围,那么直接报错。
在给变量进行赋值的时候,如果右侧的表达式当中全都是变量,没有任何变量,那么编译器javac将会直接将若干个常量表达式计算得到结果。
short result=5+8//等号右边全都是变量,没有任何变量参与运算编译后,得到的.class字节码文件当中相当于直接就是short resut=13称为编译器的常量优化
但是注意:一旦表达式中有变量参与,那么就不能进行这种优化了。
switch后面括号的类型
基本数据类型:byte/short/char/int
引用数据类型:String字符串,enum枚举