标签:算术运算 改变 end 实现 关系运算 语法 逻辑运算 start 运算
算术运算符
++出现在变量后,会先做赋值运算,再自加1
1 1 int m = 20; 2 2 int n = m++; 3 3 //最后结果 n = 20 m = 21
++出现在变量之前,会先进行自加1的运算,然后再赋值
1 int x = 50; 2 int y = ++x; 3 //x = y = 51 4 5 int num = 10; 6 num++; 7 ++num; 8 //这两条语句是一样的 都是一条语句,";"分号结束
注解:++无论出现在变量前还是后,只要++运算结束,";"分号结束,一定会自加1
一个例子:
1 int i = 0; 2 i = i++; 3 System.out.println(i); //运行结束后,i=0 4 //i = i++底层实现 5 int temp = i; 6 i = (int)(i+1); 7 i = temp;
解释 | |
---|---|
& | 逻辑与(并且) |
| | 逻辑或(或者) |
! | 逻辑非(取反) |
&& | 短路与 |
|| | 短路或 |
^ |
注意:逻辑运算符两边要求都是布尔类型,并且最终的运算结果也是布尔类型
& 两边都是true,结果才是true。
| 一边是true,结果就是true。
"&&" 和 "||" 实际上和 "& "和 "|" 运算结果完全相同,区别在于:&& 和 || 有短路现象。
左边的为false的时候:&& 短路了(后面的不执行)
左边为true的时候:|| 短路了。(后面的不执行)
注解:效率方面来说&&比&效率高
符号 | 解释 |
---|---|
& | 与 |
| | 或 |
^ | 异 |
<< | 左位移 注解:二进制左移多少位,每左移一位便乘以2(在一定范围内),不管是正数还是负数 |
>> | 右位移(有符号右移) 注解:二进制右移多少位,每右移一位便除以2(在一定范围内),最高位是什么就用什么补,如:最高位为1则用1补,为0用0补 |
>>> | 无符号右移 注解:最高位无论为什么都用0补 |
1 byte x = 100; // byte最大值127 2 x += 1000; // 编译可以通过,x变量还是byte类型,只不过损失精度 3 x += 1000; 4 //底层为:x = (byte)(x + 1000); 5 int i = 10; 6 i += 10; // 底层:i = (int)(i + 10);
int a=5; System.out.println("a="+((a<5)?10.9:9))//结果为9.0 //注解:值1和值2如果类型不一样,哪个大就向哪个转型
例子:
char x=‘x‘; int i=10; System.out.println(false?i:x);//结果为120 System.out.println(false?100:x);//结果为x System.out.println(true?x:65535);//结果为x System.out.println(true?x:65536);//结果为120
注解:使用三目运算符 char和数字直接比较 当数字(int类型)不超过65535时输出是char类型‘x‘,超过65535时输出的是int类型
’+‘ 运算符在java中有两个作用(作用1:求和, 作用2:字符串拼接)
当 + 运算符两边都是数字类型的时候,求和,当 + 运算符两边的任意一边时字符串类型,那么这个+会进行字符串拼接操作
标签:算术运算 改变 end 实现 关系运算 语法 逻辑运算 start 运算
原文地址:https://www.cnblogs.com/thesky-wfei/p/13416202.html