Java 运算符

算术运算符

  +  - *  /  %   ++   -- 

关系运算符

  >  >=  <  <=  ==   !=  结果是boolean; 

  == 是关系运算符   = 是赋值运算符

逻辑运算符

  &  且   | 或者   ! 取反    &&  短路与   || 短路或  

  短路: 只要有一个成功或失败,就跳出

  

 1 public class OperatorTest03{
 2     public static void main(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); // true
16 
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); // false
27 
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); // false
59 
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); // 12
70 
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); // 11
78 
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 class OperatorTest06{
14 
15     public static void main(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); // 300
28 
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是大写,不是:string
65 
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

 

posted @ 2020-08-27 23:59  一叶扁舟,乘风破浪  阅读(197)  评论(0编辑  收藏  举报