一、算术运算符:
1、+ (正数、加法、连接符)
连接符的作用: 让任何的数据都可以与字符串进行拼接。
如果+号用于字符串的时候,那么+号就是一个连接符,并不是做加法功能了。
连接符要注意:任何类型的数据与字符串使用连接符连接,那么结果都是字符串类型的数据。
2、-(负数、减法)
3、*(乘法)
4、/ (除法)
5、%(取模、取余数)
在java中做取模运算的时,结果的正负号是取决于被除数。
6、++(自增) : 自增就是相当于操作数+1.
1)前自增:++位于操作数的前面。比如: ++a;先自增,后使用。
2)后自增: ++位于操作数的后面。比如:a++;先使用,后自增。(这句话不太严谨,原因参考后自增在jvm的运行原理,但实用性很高)
举例1:
举例2:
有这样一个题目:输出结果为什么?
int i = 0;
i = i++;
System.out.println("i="+i);
结果:
分析一下:
++优先级2,=优先级13,所以++优先级高,肯定先做后自增运算,但是结果为什么为0?这就是后自增在jvm的运行原理所致了。
后自增在jvm的运行原理:因为后自增要使用到没有+1之前的值,那么jvm会先声明一个变量用于保存没有+1之前的值。
原理:
1)java虚拟机默认生成一个变量(这里举例temp)
2)int temp = i; 声明了一个临时变量用于记录了i没有加1之前的值。
3)自增。 i = i+1; i = 1;
4)把temp的值返回到表达式(即i=temp)。
i的值发生了几次变化:
首先为0赋给了temp —–>然后自增i=i+1=1—-> 最后temp把值赋给了i=temp=0,所以最后输出的i为1。
7、自减: 操作数-1
1)前自减: –位于操作数的前面。 –操作数;先自减,后使用。
2)后自减:–位于操作数的后面。 操作数–;先使用,后自减。
举例1:
举例2:
二、赋值运算符(从右向左):= (赋值运算符)、+= 、-=、*=、/=、%=
三、比较运算符:比较运算符的结果都是返回一个布尔值的。
1、== (判断是否等于)
1)==用于比较两个基本数据类型数据的时候,比较的是两个变量所存储的值是否一致。
2)==用于比较两个引用类型变量的数据时候,比较的是两个引用类型变量所记录的内存地址是否一致。
2、!= (不等于)
3、> (大于)
4、< (小于)
5、>= (大于等于)
6、<= (小于等于)