1. 算术运算符**
- “+” 加:同时也是字符串的连接运算符。
除法(/): - 整数/整数=整数,是截断取整,而不是四舍五入取整。
- 整数不能除0。0.0除0.0结果为NaN 非数。
- 当除数或者被除数中有一个为浮点型的,那么结果就是自然除法的结果。
- 如果此时除数为0或者0.0,那么结果为正无穷或者负无穷。
int a =19; int b = 4;
a/b=4; //整数/整数=整数,是截断取整,而不是四舍五入取整。
a/0.0=Infinity; //除数为0或者0.0时,被除数为正,结果是正无穷
-a/0.0=-Infinity; //除数为0或者0.0时,被除数为负,结果是负无穷
0.0/0.0=NaN; //0.0除0.0结果为NaN 非数
求余(%):
6. 两个整数时,第二个数不能是0。
7. 一个或两个为浮点数,第二个数为0或者0.0时,结果为NaN。
8. 第一个数为0或0.0时,结果为0.0。
int a =19; int b = 4;
a % b = 3;
a % 0.0 = NaN; //第二个数为0.0时,结果为NaN。
0.0 % b = 0.0; //第一个数为0或0.0时,结果为0.0。
自增(自减):
9. ++y(–y):先将y的值自增(自减)1,然后再在当前表达式中使用y的值。
10. y++(y–):先在当前表达式中使用y的值,然后再将y的值自增(自减)1。
int A=20; int B=20; int C=A++ + B; int D=20; int E=20;
System.out.println("++A=" + (++A)); --> ++A=21
System.out.println("B++=" + (B++)); --> B++=20
System.out.println("C="+ C); --> C=40
System.out.println("--D=" + (--D)); --> --D=19
System.out.println("E--=" + (E--)); --> E--=20
2. 关系运算符
注意:Java中==和equals()方法的区别
- ==在基础数据类型的时候就是比较值是否相同,在引用类型时是比较地址。
- equals用于判断引用类型的值
String str = "123"; int intA = 123;
String strA = String.valueOf(intA);
System.out.println("str==strA = " + (str == strA)); --> str==strA = false
System.out.println("str.equals(strA) = " + (str.equals(strA))); --> str.equals(strA) = true
Int intA1 = 10; int intA2 = 20 / 2;
System.out.println("intA1==intA2 :" + (intA1 == intA2)); --> intA1==intA2 :true
3.赋值运算符
- 在赋值的过程中,运算顺序是从右往左,将右边表达式的结果赋值给左边的变量。
- 除了“=”,其他运算符都是特殊的赋值运算符,以“+=”为例,x+=3就相当于x=x+3,首先会进行加法运算x+3,再将运算的结果赋值给变量x。特殊运算符可以此类推。
- JAVA中通过一条赋值语句对多个变量进行赋值。
正确写法
int x, y, z;
x=y=z=5; //为3个变量同时赋值
错误写法
int x= y= z=6;//这样写是错误的
4.逻辑运算符
- &&(短路)当且仅当运算符两边的条件都为true时,结果才为true,否则结果都是false,
当第左边为false时,右边的表达式则不会进行运算。 - &(不短路与):不论左边为true或者false,右边的表达式都会进行运算。
- ^(异或):当运算符两边布尔值相同为false,当运算符两边布尔值不同为true。
- ||(短路或):左右操作数任意一个为true,结果都为true,如果左边操作数为true,右边表达式将不会进行运算。两边为false时,结果才为false。
- |(不短路或):不论左边为true或者false,右边的表达式都会进行运算。
例子:
//短路&&
int intB =10;
if(intB>11 && intB++ >9){} //两侧为true,结果才为true,左侧为false,则不进行运算
System.out.println(“intB=”+intB); --> intB=10;
//不短路&
int intB =10;
if(intB>11 & intB++ >9){} //不论左侧为false还是true,表达式都会进行运算
System.out.println(“intB=”+intB); intB=11;
//短路或||
int intB =10;
if(intB < 11 || intB++ >10){} //如果左测为true,右测将不运算
System.out.println(“intB=”+intB); intB=10;
//不短路或|
int intB =10;
if(intB >11 || intB++ >10){} //不论左侧为false还是true,表达式都会进行运算
System.out.println(“intB=”+intB); intB=11;
5.其它运算符
1、 三目运算符(?:)
- 三目运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的 值。该运算符的主要是决定哪个值应该赋值给变量
- 格式:variable x = (expression) ? value if true : value if false
- 示例:
//三目运算符(?:)
int intValue =5;
System.out.println((intValue > 4) ? "5>4" : "5<4");
2、 instanceof运算符
- 该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类 型)
- 格式:(Object reference variable) instanceof (class/interface type)
- 示例:
String str1 = "Name";
boolean bool = str1 instanceof String;
System.out.println(bool);