Java中的运算符
算术运算符: +,-,,/,%,++,–
赋值运算符 =
int a = 3;赋值运算符是把=右边的值赋值左边
扩展赋值运算符:+=,-=,=,/=
关系运算符: >,<,>=,<=,==,!=
关系运算符左右两边一般都是表达式,关系运算符返回的结果是布尔类型,只有true或false
逻辑运算符: &&,||,!
位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
条件运算符 ?:
运算符运算
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
++:自增符,表示在自己原来的基础上+1
放在后面:先参加运算,后自加
放在前面:先自加,再参加运算
–:自减符,表示在自己原来的基础上-1
放在后面:先参加运算,后自减
放在前面:先自减,再参加运算
System.out.println(a++);
System.out.println(++a);
System.out.println(a–);
System.out.println(–a);
运算符的优先级
System.out.println(++b+b++);
System.out.println(b);
扩展运算符
int c = 4;
两种写法结果一样,建议使用扩展运算符来写
c = c + 1;
c += 1;
强制转换:从范围的值转化成小范围的值的时候,精度会有丢失,并且需要强制转换
byte bb = 4;
bb += 10;
System.out.println(bb);
关系运算符: >,<,>=,<=,,!=
System.out.println(2>3);
System.out.println(2<3);
System.out.println(2>=3);
System.out.println(2<=3);
System.out.println(23);
System.out.println(2!=3);
逻辑运算符: &&,||,!
&&:短路与,如果前面的表达式是false,那么后面的表达式就不执行了,结果是false
||:短路或,如果前面的表达式是true,那么后面的表达式就不执行了,结果是true
&:位运算符,也可以用来做逻辑判断,如果用来做逻辑判断的话,
不管第一表达式返回是什么,所有的表达式都会执行一遍
int cc = 1;
System.out.println(2 > 3 & ++cc < 4); System.out.println(cc);
System.out.println(4&5);
System.out.println(4|5);
System.out.println(4^5);
<<:无符号左移,正数左移几位就乘2的几次方 >>:无符号右移,正数右移几位就除2的几次方 >>>>:有符号右移
System.out.println(2 << 3);
System.out.println(16 >> 3);
条件运算符:一般第一个条件是表达式,如果返回为true就取?后面的值,如果返回为false,就取:后面的值System.out.println(3 > 2 ? 3 : 2); System.out.println(false?false:true?false:true);
基本数据类型之间的转换:
1、自动转换:我们一般说类型转换,要保证是同一种数据类型,小范围会自动向大范围转型
2、强制转换:如果不是同一种类型的数据,=号右边的值范围大,左边范围小,那么就需要使用强制转换 语法:(datatype)
3、强制转换的时候,有可能数据丢失,不精确了
byte a1 = 4;
byte b1 = (byte)(a1 + 10);
System.out.println(b1);
double dd = 12.0 + 10;
System.out.println(dd);