赋值运算符
-
赋值运算符包括“基本赋值运算符”和“扩展赋值运算符” -
基本赋值运算符就是常见的“ = ” -
扩展赋值运算符即:+=,-=,/=,%= -
一个重要的语法机制: 使用扩展赋值运算符的时候,永远不会改变运算结果类型 例如: byte a = 100;
a += 36;
System.out.println(a);
经过扩展赋值运算符的计算,虽然a=136超过了127也没关系,因为a变量经过扩展运算符计算后的类型永远都是byte。计算数字太大只是会损失精度。 但是下面的程序就会出错: byte b = 8;
b -= 1;
System.out.println(b);
5.顾从本质上而言, x = x + 1 和 x += 1两者完全不同: x = (byte)(x + 1) 才等价于 x += 1;
byte、short、char混合运算
byte a = 12;
short b = 34;
char c = 97;
int sum1 = a + b;
int sum2 = a + c;
short sum3 = a + b;
short sum4 = (short)(b + c);
int、String 和Integer之间的转换
直接上转换图:
移位运算符
-
移位运算符有三个: << >> >>> -
左移 << 最右侧补0 int x = 16;
x = x << 1;
System.out.println(x);
x = x << 1;
System.out.println(x);
3.右移 >> 最左侧补符号位 x = -8;
x = x >> 1;
System.out.println(x);
x = x >> 1;
System.out.println(x);
4.无符号右移 >>> 即不论正负,最左侧一律补0 x = -8;
x = x >>> 1;
System.out.println(x);
x = x >>> 1;
System.out.println(x);
5.注意没有“无符号左移” <<<
Switch可取的值
- switch语句支持int类型和String类型
- 在jdk8之后,switch才开始支持字符串String类型的
- switch语句在本质上只支持int类型和String类型,但是byte、short、char和枚举也可以使用在switch语句中,因为byte、short、char可以进行类型转换。
- 上面四种基本数据类型对应的包装类也是可以用在switch中,即Byte、Short、Character和Integer
- switch中的值与case的值是使用“==”进行比较的。
关于自增的几个特殊案例
直接上题目:
int i = 10;
i = i++;
System.out.println(i);
int i = 10;
i = ++i;
System.out.println(i);
int i = 10;
int a = i + i++;
System.out.println(a);
int i = 10;
int a = i + ++i;
System.out.println(a);
int i = 10;
int a = i + --i;
System.out.println(a);
int i = 10;
int a = i + i--;
System.out.println(a);
感言
第一次发博客,稍有激动。以上内容可能会有知识错误,如有发现欢迎大家指出。最后,希望能帮到一些需要的人。
|