1. 局部变量必须初始化,可以定义的同时初始化,也可以定义完成之后进行初始化。
2. Java7新特性:数字之间可以使用“_”连接,eg:23_44_5 = 23445,0B1101_1010 = 0B11011010
3. 二进制表示0b开始;八进制以0开始;十六进制以0x开始。
4. char类型可以直接赋值十进制、二进制、八进制或十六进制的字面量,编译器自动将字面量转化为char类型。
5. char类型也可以使用四位十六进制表示Unicode字符,格式为char c = ‘\uffff’;
6. 算数运算的特殊规则:
1)整数 / 0:抛出ArithmeticException违例
2)0.0 / 0.0 或 0 / 0.0 : NaN不是数,NaN不等于NaN
3)整数 / 0.0 或 浮点数 / 0.0 或 浮点数/0:等于Infinity,表示无穷大,Infinity == Infinity
6. 类型转化:
1)字面量包含十进制二进制和十六进制。
2)字面整型常量自动解析为int类型,浮点型字面量自动解析为double类型,如果字面整型常量大于int的表示范围,编译器将会解析错误,需要加上L转化为long类型。
3)数值类型的自动转换顺序是由小精度(取值范围)到大精度的过程:byte -> short -> int –> long –> float –> double。
4) 在运算表达式中,所有char、short、byte都会自动转化为int类型,表达式的最终类型等于当前运算中精度最高的那个数据的类型。
5) 编译期间,编译器会计算所有常量运算。
6)为char、byte、short赋予字面量时,只要不超过取值范围,编译器会自动转化类型,不需要手动强制转化。
7)+=、-=、/=等运算带有隐式类型转化,eg:short a = 2; a += 2; //正确,不会报错,也不需要手动强制转化
7.逻辑运算符(操作数位boolean类型)
& 位与,不短路
| 位或,不短路
^ 位异或
! 取反
&& 与,短路
|| 或,短路
8)位运算
& 按位与
| 按位或
^ 按位异或
~ 按位取反
<< 左移,空位补0
>> 右移,空位补符号位
>>> 无符号右移,空位补0
用法:a ^ b ^ b = a
a & (a - 1) == 0表明a的二进制只有一位是1,即a等于2的n次方,n大于等于0