Java学习 第三章 java基础(三)

Java运算符

1、算数运算符:

加(+) 、减(-)、乘(*)、除(/)、取余(%)

自加(++)、自减(--)

2、关系运算符

java关系运算符用于判断数据之间的大小关系

>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)

关系表达式的值为boolean类型(“true”或“false”)

3、逻辑运算符

逻辑运算的操作均为boolean表达式,结果true or false。

逻辑运算符中的每一个表达式的结果必须是true or false。

Java提供如下逻辑运算符:

 

& :  长路与运算 ,&两边都是整数时,是位与运算符;两边是关系运算时,是逻辑运算。长路与运算会把两边的关系运算结果都计算出来。

&&  : 短路与运算,当运算符左边的关系结果是false时,不再对右边的关系运算进行计算。

或运算:当两个关系运算的结果有一个是true时,运算的结果是true,否则是false

| :长路或运算,长路或运算在两边都是整数时,是逐位或运算;在两边是关系运算时,是逻辑运算;长路或运算会将两边的运算结果都计算出来。

||  :短路或运算,当运行符号左边的关系运算结果是true时,不再进行右边的关系运算,直接得出true的结果。

! : (非) 将关系运算结果取反。

三种逻辑运算的优先级:

非运算最高;

其次是与运算;

优先级最低的是或运算;

 4、条件运算符

条件运算符又称为“三目”运算,其结构为:

boolean表达式1 ? 表达式2 : 表达式3

如果表达式1 为true结果就是表达式2的结果

如果表达式1为false结果就是表达式3的结果

5、赋值运算符

“=”称为赋值运算符,用于对变量赋值。

赋值表达式本身也有值,其本身之值即为所赋之值。

可以使用扩展赋值表达式(+=、-=、/=、*=、%=)。

eg : int b = 20;

b += 5.5;(对的)

// b = b+5.5;错误===>b = (int)(b+5.5);

6、字符串连接运算符

“+” 可以实现字符串的连接。同时可以实现字符串与其他数据类型的“项连”。

eg : System.out.println(1+2+3+”hello”) 输出6hello

eg : System.out.println(”hello”+1+2+3) 输出 hello123

7、位运算操作符(效率高,都是直接二进制运算)

(1)右移操作    

>> 有符号 正数补0 负数补1

>>>无符号 正数补0 负数补0

正数:转换成二进制,往后挪动2位前面补0,最后两位抹去

右移动一位相当于除以2

eg : int a = 10;  a>>2;  得到2

负数:前面补位,补1 后面抹去

eg :int b = -10; b>>2;  

/*

推理过程

a.先得到-10的二进制

10的二进制 28个0  1010

取反   28个1   0101——>+1

-10的二进制 28个1  0110

b.移动

右移动两位   11  28个1  01 这个就是最终的负数

c.计算最后结果

负数取反+1得到对应的正数

00 28个0 10 +1====>得到对应正数 00 28个0 11

正数是3对应的负数时-3

*/

无符号右移动专门针对负数,正数前面补0,负数在前面也是补0

eg: b>>>2;

(2)左移操作

<< 后面补0(不管正负数),左移动一位相当于乘以2

(3) & (位与)、|(位或)、 ^(异或)

      • 操作数1 & 操作数2   

eg: int c = 5,d = 4; c & d;(把两个数字都转换成二进制,然后一位一位运算,都是1这一位就为1否则为0,得到的二进制再转换成十进制即可)

      • 操作数1 | 操作数2

eg: int c = 5,d = 4; c | d;(把两个数字都转换成二进制,然后一位一位运算,都是0这一位就01否则为1,得到的二进制再转换成十进制即可)

      • 操作数1  ^  操作数2

eg: int c = 5,d = 4; c ^ d;(把两个数字都转换成二进制,然后一位一位运算,相同为0不相同为1,得到的二进制再转换成十进制即可)

// c = a ^ b;  那么 b 等于c^a ; a等于 c^b 的结果;

 

 

posted @ 2017-12-04 17:28  Belinda_sl  阅读(306)  评论(0编辑  收藏  举报