- j=++i; 先自增后赋值( i 先自增然后再赋值给 j )
- j=i++; 先赋值后自增( i 赋值给 j 然后再自增 )
1.超出范围运算会得到错误结果
2.大类型数据和小类型数据做运算,结果为大类型
3.俩个整数直间求整其劫夺还是个整数
4.几种特殊情况:
浮点数除以0 得到无穷大的数
整数除以0会异常
负数开平方得到的NaN 不是一个数
//java中封闭式计算 int n1=Integer.MAX_VALUE; System.out.println("n1="+n1); int n2=n1+1; //long n2=n1+1L;这样正确 转成long类型 System.out.println("n2="+n2); //上溢出,最大值加1变成最小值 int n3=Integer.MIN_VALUE; System.out.println("n3="+n3); int n4= n3-1; System.out.println("n4="+n4); //大类型数据和小类型数据做运算 //结果为大类型数据 //结果取float类型 int n5=100; float f1=12.3f; float f2=n5+f1; System.out.println("f2:"+f2); byte b1=10; //int b2=b1+20; byte b2=(byte)(b1+20); //b3和b4俩个变量中所存储的值在进行运算时, //需要从变量中取出来,再取出来后又会变成int类型 byte b3=20; byte b4=30; int b5=b3+b4; //byte b5=(byte)(b3+b4); //整数之间的求整和求余 int i=15; int j=2; int g=i%j; System.out.println(i/j);// 7 求整 取整数; System.out.println("g="+g); //几种特殊情况: //1.浮点数除以0,得到无穷大。 double d1=12.3; System.out.println(d1/0);//infinity //2.整数除以0,异常。 //3.负数开平方 System.out.println(Math.sqrt(-9)); //NAN int m=2; m=(m++)+(++m); System.out.println(m);// 6 //求幂2^10 System.out.println(Math.pow(2,10)); //向下求整 System.out.println(Math.floor(-4.9)); //向上取整 System.out.println(Math.ceil(-3.2)); //四舍五入 System.out.println(Math.round(7.5)); //获取一个随机数,范围[0,1) System.out.println(Math.random());
赋值运算符前面会有一个默认的强制类型转换。
int a=10;
a+=5 ; //a=(int)a+5
System.out.println(a);
a-=5 ; //a=(int)a-5
System.out.println(a);
a*=5 ; //a=(int)a*5
System.out.println(a);
a/=5 ; //a=(int)a/5
System.out.println(a);
a%=5 ; //a=(int)a%5
System.out.println(a);
byte b=10;
//b =(byte)(b+20);
b+=20;
//b =(byte)(b+20);
System.out.println(b);
比较运算符:
-
比较运算的结果是返回一个布尔类型的值,表示这个表达式是否成立
-
比较运算符要么是同类型,要么只能在整数,浮点数和字符类型之间比较,不能和其他类型之间比较。
-
布尔类型只能判断相等或不等 不能比较大小
-
==和!=可以在整数,浮点数和字符类型之间比较,只判断值不普安段类型。
public class TextOpen03 {
public static void main(String[] args) {
int a=20;
int b=30;
System.out.println(a>b);
System.out.println(a=b);
System.out.println(a<=b);
System.out.println(a==b);
System.out.println(a!=b);//只看数值不看类型
}
}
逻辑运算符:
//逻辑运算符
// 与:布尔表达式一&&布尔表达式二
// 或:布尔表达式一||布尔表达式二
// 非:!布尔表达式二
// 逻辑与&& 俩个全为真则为真,有一个假则为假
//逻辑或|| 有一个真则为真,俩个全为真则真,全为假则为假
//逻辑非! 为真则输出假 为假则输出真
短路与:如果第一个为假 则就不执行下一步,直接输出false
短路或:如果第一个为真 则就不执行下一步,直接输出true
优先级:移位运算:!非
算数运算符 由高到低
关系运算符
逻辑运算符&&、|| 与和或再一起使用时,与比或优先级相对高
赋值运算符
// >>带符号右移
//正数带符号右移,左侧补0
//负数带符号右移,左侧补1
// >>>无符号右移
//无论是正数还是负数,右移之后左侧都补0
// <<左移
//无论正数还是负数,左侧都补0
位运算符:
//1、 & 位与 System.out.println(a&b);//5 1当true,0当false 按位求与 //2、 |位或 System.out.println(a|b);//-3 1当true,0当false 按位求或 //3、 ^异或(相同为0,不同为1) System.out.println(a^b);//-8 1当true,0当false 按位求异或 //4、 ~位非 System.out.println(~b);// 2 1当true,0当false 按位求非 0取1,1取0
-
1、算术运算符/ % ++ -- 2、赋值运算符 = += -= *= /= %= 3、比较运算符(判断运算符) = < <= == != 4、逻辑运算符(条件运算符) && || ! 5、三项运算符(三目运算符) ? : 6、移位运算符 << 7、位运算符 & | ^ ~



