JAVA-运算符

前言

李刚老师《JAVA疯狂讲义》第5版,第3章学习笔记。

1.算术运算符

JAVA支持的7个算术运算符:加(+)、减(-)、乘(x)、除(/)、求余(%)、自加(++)、自减(–)。
注意:

  1. 加法运算符+:除了可以作为加法运算符,还可以作为字符串连接符
  2. 除法运算符/:若两个操作数都是整数,则结果也为整数,同时分母不能为0,否则会报错;当两个操作数中有一个为浮点数时,结果就为浮点数。
  3. 求余运算符%:求余运算的结果不一定为整数,如:5.2 % 3.1 = 2.1。因为%与除法运算符相同,结果是整数还是浮点数取决于操作数的数据类型。
  4. ++和–为单目运算符,只能作用于一个操作数。并且这个操作数只能是数值型变量。
  5. 当++(–)在操作数左边时,操作数先自加(自减)再带入表达式运算;当++(–)在操作数右边时,操作数先带入表达式计算再自加(自减)
  6. 若需要完成更复杂的数学运算,例如:乘方、开方等,则需要借助java.lang.Math类的工具方法实现

2.赋值运算符

JAVA中使用 = 作为赋值运算符,可以用于将一个直接量赋值给一个变量,或者将一个变量的值赋值给另一个变量,或一个表达式的值赋值给另一个变量。

JAVA中,一个赋值表达式本身也是有值的,这个值就是=右边的值,因此以下代码是正确的:

int a;
int b;
int c;
//下方赋值语句,三个变量的值都被赋值为7
a = b = c = 7;

JAVA中,赋值运算符可以与算术运算符、位移运算符结合如下:
+=、-=、*=、/=、%=等。建议更多的使用这种运算符,因为性能更好,并且程序会更加健壮。

3.位运算符

按位运算,也就是按照数据在内存中存储的二进制数字进行运算,JAVA共支持7个位运算符:
1.&:按位与:两个位同时为1是才返回1
2.|:按位或:两个位只要有一个为1就返回1
3.~:按位非:操作数每个位(包括符号位)全部取反
4.^:按位异或:两位相同返回0,不同返回1
5.<<:左移运算符
6.>>:右移运算符
7.>>>:无符号右移运算符

一般来说,位运算符只能操作整数类型的变量或者值。以5^9(&、|、~的逻辑基本类似)为例,分析位运算符的运算过程,如下:
JAVA位运算符内存计算逻辑
位移运算符逻辑如下:

左移运算符,以-5 << 2为例:
JAVA左移运算符计算逻辑
右移运算符逻辑与左移运算符基本相同,但是由于是右移,所以需要补充符号位。当原操作数为正时,符号位补0,当原操作数为负时,符号位补1。
无符号右移运算符逻辑与右移运算符基本相同,但是其符号位永远以0补充。

对于位移运算符注意:

  1. 对于操作数等级低于int的数据类型(byte、short和char),进行位移操作时,会自动转换为int后进行位移操作。
  2. 对于int类型,a >> b,若b>32,则JAVA会首先用b对32取余,然后再进行位移运算
  3. 对于long类型,a>>b,若b>64,咋JAVA会首先用b对64取余,然后再进行位移运算

4.比较运算符

JAVA中的比较运算符用以比较两个常量或变量之间的大小关系,返回一个布尔值。JAVA中支持的比较运算符包括:>、>=、<、<=、==、!=。

注意:

  1. <、<=、>=、>都需要对比的两个操作数为数值类型
  2. ==和!=对比的两个操作数可以不是数值类型,如果两个操作数都是引用类型,那么只有这两个引用变量的类型具有父子关系时才能比较,引用指向同一个对象时,==返回true,引用指向不同对象时,!= 返回true。

5.逻辑运算符

JAVA中逻辑运算符用于操作两个布尔型的变量或常量,主要包括:

  1. &&:与,都真才真,一假就假
  2. &:不短路与
  3. ||:或,一真就真,都假才假
  4. |:不短路或
  5. !:非,真则得假,假则得真
  6. ^:异或,相同则真,不同则假

注意:
什么是不短路与、不断路非。例如:
false && false && true = false,这个表达式在运算的过程中,由于&&的第一个操作数为false,所以系统自动判定结果一定为false,因此后面的表达式实际上不会执行。(||同理)
false & false & true = false,这个表达式在运算的过程中,虽然&的第一个操作数为false,但是由于运算符是不短路与&,所以后面的表达式都会执行,最终给出答案。(|同理)

6.三目运算符

JAVA中三目运算符只有一个:
(expression) ? if-true-statement : if-false-statement
大部分时候,三目运算符是作为if else的精简写法出现的
例如:

String str = 5 > 3 ? "5大于3":"5不大于3"

同时,三目运算符可以嵌套使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值