算术运算符
+ - * / % ++ --
关系运算符
> >=
== 是关系运算符 = 是赋值运算符
逻辑运算符
& 且 | 或者 ! 取反 && 短路与 || 短路或
短路: 只要有一个成功或失败,就跳出
1 public classOperatorTest03{2 public static voidmain(String[] args){3 //对于逻辑与&运算符来说,只要有一边是false,结果就是false。4 //只有两边同时为true,结果才是true。
5 System.out.println(true & true); //true
6 System.out.println(true & false); //false
7 System.out.println(false & false); //false
8
9 System.out.println(100 > 90 & 100 > 101); //false
10 System.out.println((100 > 90) & (100 > 101)); //false
11
12 int a = 100;13 int b = 101;14 int c = 90;15 System.out.println(a < b & a > c); //true16
17 //对于逻辑或呢?18 //只要有一边是true,结果就是true。
19 System.out.println(a < b | c > b); //true
20 System.out.println(true | false); //true
21
22 System.out.println(true | true); //true
23 System.out.println(false | false); //false
24
25 System.out.println(!false); //true
26 System.out.println(!true); //false27
28 //注意:这里需要加一个小括号。
29 System.out.println(!(a > b)); //true
30
31 /*
32 关于短路与 &&,短路或 ||33 其中重点学习短路与,短路或照葫芦画瓢。34
35 短路与&& 和 逻辑与 &有什么区别?36 首先这两个运算符的运算结果没有任何区别,完全相同。37 只不过“短路与&&”会发生短路现象。38
39 什么是短路现象呢?40 右边表达式不执行,这种现象叫做短路现象。41
42 什么时候使用&&,什么时候使用& ?43 从效率方面来说,&&比&的效率高一些。44 因为逻辑与&不管第一个表达式结果是什么,第二个表达式一定会执行。45
46 以后的开发中,短路与&&和逻辑与还是需要同时并存的。47 大部分情况下都建议使用短路与&&48 只有当既需要左边表达式执行,又需要右边表达式执行的时候,才会49 选择逻辑与&。50 */
51
52 System.out.println(true & true); //true
53 System.out.println(true & false); //false
54 System.out.println(false & false); //false
55
56 System.out.println(true && true); //true
57 System.out.println(true && false); //false
58 System.out.println(false && false); //false59
60 //接下来需要理解一下什么是短路现象,什么时候会发生“短路”。
61 int x = 10;62 int y = 11;63 //逻辑与&什么时候结果为true(两边都是true,结果才是true)64 //左边的 x>y 表达式结果已经是false了,其实整个表达式的结65 //果已经确定是false了,按道理来说右边的表达式不应该执行。
66 System.out.println(x > y & x > y++);67
68 //通过这个测试得出:x > y++ 这个表达式执行了。
69 System.out.println(y); //1270
71 //测试短路与&&
72 int m = 10;73 int n = 11;74 //使用短路与&&的时候,当左边的表达式为false的时候,右边的表达式不执行75 //这种现象被称为短路。
76 System.out.println(m > n && m > n++);77 System.out.println(n); //1178
79 //问题:什么时候发生短路或现象?80 //|| 短路或81 //“或”的时候只要有一边是true,结果就是true。82 //所以,当左边的表达式结果是true的时候,右边的表达式不需要执行,此时会短路。
83
84 }85 }
View Code
赋值运算符
基本运算符 和 扩展运算符
= += -= *= /= %= 使用扩展赋值运算符的时候,永远都不会改变运算结果类型。
条件运算符
语法格式:布尔表达式 ? 表达式1 : 表达式2
boolean sex = true;
// 前面的变量的c的类型不能随意编写。
// 最终的计算结果是字符型,所以变量也需要使用char类型。
char c = sex ? '男' : '女';
字符串连接符
+
从左到右,除非有小括号
当 + 运算符两边都是数字类型的时候,求和。
当 + 运算符两边的“任意一边”是字符串类型,那么这个+会进行字符串拼接操作。
1 /*
2 + 运算符:3 1、+ 运算符在java语言中有两个作用。4 作用1:求和5 作用2:字符串拼接6
7 2、什么时候求和?什么时候进行字符串的拼接呢?8 当 + 运算符两边都是数字类型的时候,求和。9 当 + 运算符两边的“任意一边”是字符串类型,那么这个+会进行字符串拼接操作。10
11 3、一定要记住:字符串拼接完之后的结果还是一个字符串。12 */
13 public classOperatorTest06{14
15 public static voidmain(String[] args){16
17 //定义一个年龄的变量。
18 int nianLing = 35;19
20 //+ 在这里会进行字符串的拼接操作。
21 System.out.println("年龄=" + nianLing); //"年龄=35"
22
23 int a = 100;24 int b = 200;25 //这里的 + 两边都是数字,所以加法运算
26 int c = a +b;27 System.out.println(c); //30028
29 //注意:当一个表达式当中有多个加号的时候30 //遵循“自左向右”的顺序依次执行。(除非额外添加了小括号,小括号的优先级高)31 //第一个+先运算,由于第一个+左右两边都是数字,所以会进行求和。32 //求和之后结果是300,代码就变成了:System.out.println(300 + "110");33 //那么这个时候,由于+的右边是字符串"110",所以此时的+会进行字符串拼接。
34 System.out.println(a + b + "110"); //最后一定是一个字符串:"300110"35
36 //先执行小括号当中的程序:b + "110",这里的+会进行字符串的拼接,37 //拼接之后的结果是:"200110",这个结果是一个字符串类型。38 //代码就变成了:System.out.println(a + "200110");39 //这个时候的+还是进行字符串的拼接。最终结果是:"100200110"
40 System.out.println(a + (b + "110"));41
42 //在控制台上输出"100+200=300"
43 System.out.println("100+200=300"); //不是这个意思。44
45 //以下有效的运算符加号一共有4个,这4个加号都是字符串拼接操作。
46 System.out.println(a + "+" + b + "=" +c);47
48 //分析这个结果是多少?49 //以下表达式中没有小括号,所以遵循自左向右的顺序依次执行。50 //第1,2,3,4个加号都是进行字符串拼接,拼接之后的结果是:"100+200=100"51 //前4个加号运行之后是一个字符串"100+200=100"52 //然后这个字符串再和最后一个b变量进行字符串的拼接:"100+200=100200"
53 System.out.println(a + "+" + b + "=" + a +b);54
55 //和上面程序不一样的地方是:最后一个加号先执行,并且会先进行求和运算。
56 System.out.println(a + "+" + b + "=" + (a +b));57
58 //在java语言中怎么定义字符串类型的变量呢?59 //int是整数型 i 是变量名 10是字面量60 //int i = 10;61 //String是字符串类型,并且String类型不属于基本数据类型范畴,属于引用类型。62 //name是变量名,只要是合法的标识符就行。63 //"jack" 是一个字符串型字面量。
64 String name = "李四"; //String类型是字符串类型,其中S是大写,不是:string65
66 //错误:类型不兼容。67 //String name = 100;68
69 //会进行字符串的拼接70 //System.out.println("登录成功欢迎" + name + "回来");71
72
73 //口诀:加一个双引号"",然后双引号之间加两个加号:"++",然后两个加号中间加变量名:"+name+"
74 System.out.println("登录成功欢迎"+name+"回来");75
76 System.out.println(a + "+" + b + "=" +c);77
78 }79 }
View Code