JavaSE第五章 运算符

运算符

1.1 运算符的分类

  • 按功能分:
    算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、条件运算符、字符串连接运算符和其他运算符
  • 按操作数数目分:
    单目运算符(1 个操作数)、双目运算符(2 个操作数)和三目运算符(3 个操作数)
    什么是操作数和操作符?
    例如 1+2,其中 1 和 2 都是操作数,+是操作符,操作符和操作数联合起来构成表达式

1.2 算术运算符

  • ++ 自加1
    ++ 可以出现在变量前或后
    ++ 出现在变量后,会先做赋值运算,再自加1
int m = 20;
int n = m++;
System.out.println(n);    //n = 20
System.out.println(m);    //m = 21

++ 出现在变量前,会先做自加1,再赋值运算

int m = 20;
int n = ++m;
System.out.println(n);    //n = 21
System.out.println(m);    //m = 21
  • “–”同理

1.3 关系运算符

  • 所有的关系运算符的运算结果都是布尔类型,即true或false,不可能有其他值
    = :赋值运算符
    == :关系运算符,判断是否相等
    关系运算符中如果有两个符号的话,两个符号之间不能有空格

1.4 逻辑运算符

  • 逻辑运算符两边要求都是布尔类型,并且最终的运算结果也是布尔类型
  • &(逻辑与)
    两边都是true,结果是true
    “&”无论什么情况,后面表达式都要运算
  • | (逻辑或)
    有一边是true,结果是true
  • !(逻辑非)
    取反
  • && (短路与)
    “&&”是短路与,只要第一个表达式满足了整个表达式的值,后面的表达式就不再进行运算了
int x = 10;
int y = 11;
System.out.println(x > y & x > y++);    //右边x > y++执行
System.out.println(y);    //y = 12
int m = 10;
int n = 11;
System.out.println(m > n && m > n++);    //右边m > n++不执行
System.out.println(n);    //n = 11

“&&”比“&”效率高,开发中经常用“&&”做判断 ,只有当需要左右两边都执行的时候,选择逻辑与 &

  • || (短路或)
    有一边是true,结果是true,所以,当左边为true的,右边的表达式不执行

1.5 赋值运算符

  • 分类
  1. 基本赋值运算符
    =
  2. 扩展赋值运算符
    +=、-=、*=、/=、%=…
    扩展运算符在编写的时候,两个符号之间不能有空格
  • 赋值运算符右边的优先级比较高,先执行右边的表达式,然后将执行结果赋值给左边
int n = 10;
n += 20;    //n变量追加20(n = n + 20)
System.out.println(n);    //n = 30
  • n += 20与n = n + 20完全一样吗?
    不一样,本质上并不是完全相同 ,只能说是相似
byte a = 100;
a = a + 1;
System.out.println(a);    //编译不通过,(错误:不兼容的类型),编译器检测到a + 1是int类型,int类型不能直接赋值给byte类型的变量
byte a = 100;
a += 1//其实a += 1等同于a = (byte)(a + 1)
System.out.println(a);    //编译通过(语法机制:使用扩展赋值运算符的时候,永远都不会改变运算结果类型)

语法机制:使用扩展赋值运算符的时候,永远都不会改变运算结果类型

1.6 条件运算符

  • 条件运算符也成为三目运算符,语法格式为:
    布尔表达式?表达式1:表达式2
  • 执行原理:
    布尔表达式的结果为true,表达式1的执行结果作为整个表达式的结果;布尔表达式的结果为false,表达式2的执行结果作为整个表达式的结果

1.7 字符串连接运算符

  • 字符串连接运算符:+
    +在Java中有两个作用:求和、字符串拼接
    当 + 运算符两边都是数字类型的时候,求和;
    当 + 运算符两边的任意一边是字符串类型,那么这个 + 会进行字符串拼接操作;
    字符串拼接完成之后结果还是一个字符;
    当一个表达式中有多个加号时,遵循自左向右的顺序依次执行(除非额外加了小括号)
  • 小技巧:
    把变量加到一个字符串当中
"+变量名+"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jayco-J

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值