- 运算顺序
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
public class HelloWorld { public static void main(String[] args) { System.out.println(1+2+"hello"+6+6); System.out.println(1+2+"hello"+(6+6)); } } 运行结果: 3k66 3k12
- 字符串连接符
字符串连接符两侧只要有一个是字符串类型,系统会自动将另一个操作数转为字符串,然后再进行拼接。
public static void main(String[] args) { int i = 100; String str = "小明数学考分"+i;
String str2 = "" + i; }
补充:System.out.println()方法的参数也会自动调用toString 方法。
- 扩展赋值运算符
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
public static void main(String[] args) { int i = 1; i += 1; System.out.println(i); String str = "1"; str += str; System.out.println(str); boolean b = false; b &= true;//b &&= true;报错 System.out.println(b); boolean b2 = false; b2 |= true;//b2 ||= true;报错 System.out.println(b2); }
- 逻辑运算符
java 有 &&、||、&、|、!、^
异或逻辑运算符^,相异为true
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
@SuppressWarnings("unused") public static void main(String[] args) { if (false ^ true) { System.out.println("我是异或1"); } if (true ^ false) { System.out.println("我是异或2"); } if (false ^ false) { System.out.println("我是异或3"); } if (true ^ true) { System.out.println("我是异或4"); } }
- 关系运算符(比较运算符)
java 有>、<、>=、<=、==、!=
- 关系运算符和逻辑运算符的比较
二者相同处:
运算结果都为boolean 值。
二者不同处:
逻辑运算符的操作数是boolean值,关系运算符的操作数可以是数值
注意:!是一个逻辑运算符,!= 是一个关系运算符
- 位运算符
位操作是指对操作数以二进制位(bit)为单位进行的运算,运算结果为整数。运算过程的第一步是把操作数转换为二进制的形式,然后按位进行布尔运算。
& 按位与 都为1,结果为1,否则为0;
| 按位或 都为0,结果为0,否则为1;
^ 按位异或 不同为1,相同为0;
~ 按位取反 1变0,0变1;
<< 左移位 高位抛弃,低位补0;
>> 带符号右移 高位负数补1,正数补0,低位抛弃;
>>> 无符号右移 高位补0,低位抛弃。