栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

各种运算符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

各种运算符

运算符 算术运算符

算术运算符:+ - * / % ++ –

以++为例:

int m = 10;
int n = m++; //可以理解为先把m赋给n,再让m的值 + 1

int x = 10;
int y = ++x; //可以理解为 先进行自加1 再进行赋值

其实++运算使得变量立刻+1,只是i++取的是加之前的值,++i取的是加之后的值

引例:

int i = 10;
i = i++;
System.out.println(i); //这时i的值还是10

因为Java在执行这种表达式的时候,会提前将i找一个临时变量存储,就等同于以下代码:

int i = 10;
int temp = i;
i++;
i = temp;
关系运算符

​ > >= < <= == !=

所有关系运算符的结果都是布尔类型

逻辑运算符

& | ! && ||

逻辑运算符的两边都是布尔类型,并且结果也是布尔类型

  • & 只有两边的结果都是true的时候,结果才是true; 并且如果左边是false的话右边表达式还是会继续执行
  • && 如果左边表达式的结果是false 的话,右边的表达式就不会执行
  • || 同理。
int x = 10, y = 11;
System.out.println(x > y & x > y++);//左边的结果已经是false了,但是右边的表达式还会执行
System.out.println(y);//结果是12
        
int m = 10, n = 11;
System.out.println(m > n & m > n++);//左边的结果是false了,右边的表达式就不会执行了
System.out.println(n);//结果是11
扩展赋值运算符

+= -= *= /= %=

  • 扩展运算符永远不会改变运算结果的类型
x += 1;
x = (byte)(x + 1);

这两条语句实际上是等价的,扩展赋值运算符会自动进行强制类型转换

引例:

byte x = 100;
x = x + 1; 
x += 1; //这样做就没有任何问题,自动进行强制类型转换,这也证明了上述结论

x += 199; //这已经超过了byte类型的取值范围,但是还不会报错;强制类型转换会自动损失精度
条件运算符

布尔表达式 ? 表达式1 : 表达式2;

布尔表达式为true时,选择第一个表达式执行;为false时选择第二个表达式执行

boolean sex = true;
char c = sex ? '男' : '女' ;//最终的结果时字符类型,就需要用字符型变量进行接收
字符串连接运算符

+在Java中有两个作用:

  1. +两边都是数字类型时,进行求和
  2. 任意一边是字符串类型时,进行字符串拼接,得到的结果还是字符串

在一个表达式中有多个 + 时,按照自左向右的顺序进行执行

System.out.println(a + b + "110");

先计算a + b ,得到300 + "110"再进行字符串拼接,结果是300110

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/963901.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号