JavaSE - 运算符

目录

运算符

1.算术运算符

2. 关系运算符

3. 逻辑运算符

4. 位运算符

5. 移位运算符

6. 条件运算符


这里简单记录一些比较不同的,新颖的,或者值得注意的,以前没注意到的知识点。

运算符

1.算术运算符

①加,减,乘,除,取余  + - * / %

加减乘没什么意思,这一部分其实是和上一篇博客的类型转换,以及类型提升有关联。

1. 除:

除数不能为0

int/int结果为int,int/float结果为float,int/double结果为double,这就是类型提升的原理。

2. 取模

Java中的%与C/C++中的不同,C/C++中只能对整数取模,而Java中可以对小数取模。

其中的f不可省略,因为若无f,则1.7 0.6则为double型字面值常量。结果是不能用float接收的。

②增量运算符 

+= -= *=  /= %=  <<= >>= >>>=  .....

没什么好说的,很方便,并且有一个特殊点:

 可以看到,+= -= 运算符会自动进行强制类型转换。比如 f1 float变量直接减一个double字面值常量然后赋值给一个float变量是非法的,而-=就可以,说明编译器自动进行了一些处理,可见 += -= *= /=等运算符的方便之处。

③自增自减运算符++--

略了,没什么变化,没什么值得注意的。

2. 关系运算符

!=  ==  < > <= >= 返回值是boolean类型,if,for,等条件判断部分,只能是boolean类型。

3. 逻辑运算符

逻辑运算符的操作数和返回值都是boolean类型

&&逻辑与     ||逻辑或    !逻辑非

最重要的就是逻辑与 和 逻辑或的短路求值了,这个在避免C++的非法访问时经常使用。

string s;
if(cin >> s && s[0] == 'q')
    return;
String s;
if(!cin>>s || s == "quit")
    return;

Java如何实现类似代码目前还不会......

当 & 和 | 的左右操作数的结果是boolean类型时,也支持&& || 的功能,但是不支持短路求值。

4. 位运算符

Java 中对数据的操作的最小单位不是字节, 而是二进制位.

位运算符主要有四个: & | ~ ^

位操作表示 按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位的 每一位依次进行计算

& 按位与:两个操作数,对应二进制位都为1则结果为1,否则为0

|  按位或:两个操作数,对应二进制位都为0则结果为0,否则为1

~ 按位取反:一个操作数,二进制位的1变为0,0变为1

^ 按位异或:两个操作数,异,对应二进制位相同为0,相异为1

当 & | 左右操作数结果为boolean类型时,才表示逻辑运算,操作数为整型时,表示位运算。

5. 移位运算符

移位运算符有三个,操作的都是二进制位。

<<  左移运算符:移掉最左侧的二进制位,右侧补0

>>  右移运算符:移掉最右侧的二进制位,左侧补符号位(正数补0,负数补1)

>>> 无符号右移运算符:移掉最右侧的二进制位,左侧补0(无论正负)

1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.

2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.

3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.

4. 移动负数位或者移位位数过大都是未定义的行为。

 可以看到,-15无符号右移,则符号位补0。那么就会变成一个很大的正数。

6. 条件运算符

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

Java唯一一个三目运算符。表达式1的结果必须是boolean类型。同样存在短路求值,表达式1结果为true,执行表达式2,并以此作为整个表达式的结果。表达式1结果为false时,执行表达式3,并以此作为整个表达式的结果。

7.运算符的优先级

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值