运算操作符
-
-
- / %
-
++ –
++ – 比 * / + - % 优先级高
单目 > 双目 > 三目
单元 > 双元 > 三元
i++ 和 ++i 的区别?
i++ 先赋值,后运算
++i 先运算,后赋值
int a = 1;
int b = 1;
int c = 0;
int d = 0;
c = a++ + 1;//结果为2 ,先算a 再++ 相当于c = 1 + 1; a = 2;
d = ++a + 1;//结果为3 ,先算++ 再a 相当于d = 2 + 1 ;a = 2;
关系运算符
< >= <= == !=
== 判断相等
!= 不等于
返回结果 都是 boolean (true/false)
int a = 10;
int b = 11;
//true
System.out.println(a < b);
//true
System.out.println(a <= b);
//false
System.out.println(a > b);
//false
System.out.println(a >= b);
//false
System.out.println(a == b);
//true
System.out.println(a != b);
位运算符
& 位与,两边都是真 结果才是真
int a = 10;
int b = 11;
//false
System.out.println(a<b&a>b);
//true
System.out.println(a<b&true);
| 位或,一边为真 结果就为真
//true
System.out.println(true|false);
//false
System.out.println(false|false);
! 位非,取反,真就是假,假就是真
^ 位异或,两边不一样就是真
//true
System.out.println(true|false);
//false
System.out.println(false|false);
``
~ 按位非
比如 0的二进制 00000000
~0 之后 就是 11111111 反码 10000000
: 右移运算符(考虑符号位,就是再怎么移动,符号位不变,正数就是正数,负数就是负数)
//结果是32
System.out.println(2<<4);
&& 且,短路与 和 & 一样,如果第一个语句为假 第二个语句不执行,结果直接为假即可
|| 或.短路或 和 | 一样,同上,第一个就为真,第二个就不执行,结果直接为真即可
赋值运算符
基本赋值运算符
= 把 右边的赋值给左边
扩展
+= : 左边和右边相加,结果赋值给左边
int a = 1;
int b = 2;
//相当于 a = a + b;
a += b;
-= : 左边减去右边,结果赋值给左边
int a = 1;
int b = 2;
//相当于 a = a - b;
a -= b;
``
字符串连接符
- : +即是算数运算符,也是字符串连接符
字符串 : “” 双引号表示
字符串连接符可以让两个字符串连接成一个字符串
//比如要输出 "今年我7岁了"
int age = 7;
System.out.println("今年我" + age + "岁了");
三目运算符
也有叫三元运算符
boolean表达式? 真语句 : 假语句;
只要返回运算结果为boolean类型,都是boolean表达式
if(1 > 0)?true?false;