详述Java中的运算符

本文全面解析Java中的各类运算符,包括算术、关系、逻辑、位运算符等,阐述了它们的功能、使用场景及优先级,并通过实例展示了自增自减、赋值扩展、条件运算符的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、算术运算符

算术运算符中+,-,*,/,%属于二元运算符,二元运算符指的是需要两个操作数才能完成运算的运算符。其中的%是取模运算符,就是我们常说的求余数操作。

1、整数运算:
如果两个操作数有一个为Long, 则结果也为long。
没有long时,结果为int。即使操作数全为short,byte,结果也是int。
2、浮点运算:
如果两个操作数有一个为double,则结果为double。
只有两个操作数都是float,则结果才为float。
3、取模运算:

  • 1、其操作数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左边操作数相同,如:7%3=1,-7%3=-1,7%-3=1。
  • 2、浮点数据取余时的结果是余数加上小数部分,例:50.5%5=0.5。
  • 3、自增自减运算:
     算术运算符中++,–属于一元运算符,该类运算符只需要一个操作数。
    示例:
public class Test{
	public static void main(String args[]){
	int a=1;
	int b=a++;
	System.out.println("a="+a+"\nb="+b);
	int d=3;
	int c=d--;
	System/out.println("d="+d+"\nc="+c);
	//d先复制3将3复制给c后在执行减1操作最后d为2
}
}

结果:

a=2
b=1
d=2
c=3

4、赋值及其扩展运算符
a+=b 等于 a=a+b 其他一样(+=,-=,*=,/=,%=)

二、关系运算符

在这里插入图片描述
1:=是赋值运算符,而真正的判断两个操作数是否相等的运算符是==。
2:==、!= 是所有(基本和引用)数据类型都可以使用
3:> 、>=、 <、 <= 仅针对数值类型(byte/short/int/long, float/double。以及char)

三、逻辑运算符

在这里插入图片描述
短路与和短路或采用短路的方式。从左到右计算,如果只通过运算符左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率。

四、位运算符

在这里插入图片描述
1、左移和右移运算:左移一位相当于*2;右移一位相当于/2.

int a1=3*2*2;
int a2=3<<2;//相当于a1
int a3=12/2/2;
int a4=12>>2;//相当于a4

2、位运算:将数据转化为2进制的数据,然后进行按位逻辑操作。

五、字符串连接符

“+”运算符两侧的操作数中只要有一个是字符串(String)类型,则该“+”为字符串连接符。

六、条件运算符(二目运算符)

格式: x ? y : z
当满足条件时,取y得值;不满足时取z的值。
示例:

int score =80;
String type=score<60?"不及格":"及格";
System.out.println("type= "+type);

输出结果:
及格

七、运算符的优先级

在这里插入图片描述

逻辑与、逻辑或、逻辑非的优先级一定要熟悉!(逻辑非>逻辑与>逻辑或)

八、强制类型转化与自动类型转化

1、自动类型转化:只要不超过该类型的范围即可;(由容量小的向容量大的转化)
2、强制类型转化:强制将数据转化为所需的类型,可能会造成数据的精度丢失。
注意:不能在布尔类型和任何数值类型之间做强制类型转换
3、溢出现象:要先将精度提升后在进行运算。

int money = 1000000000; //10亿
int years = 20;
//返回的total是负数,超过了int的范围
int total = money*years;
System.out.println("total="+total);

//返回的total仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生了数据丢失
long total1 = money*years; 
System.out.println("total1="+total1);

//返回的total2正确:先将一个因子变成long,整个表达式发生提升。全部用long来计算。
long total2 = money*((long)years); 
System.out.println("total2="+total2);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值