1.2 java运算符
1. 向上转型(隐式类型转换)
当一个运算中包含多个数据类型时,会默认自动提升至大的数据类型:
小————大
byte,short,char < int <long < float < double
byte,short,char默认转化为int
如果基本类型的运算元素里有double的话,那么结果就是double,因为double最大(不包括boolean);
如果基本类型的运算元素和String相连接,那么结果就是一个String;
举个栗子:
String s = 2+3+”hi”+2+4;
System.out,println(s); // 5”hi”24
2. 向下转型(强制性类型转换)
double pi = 3.14;
int i7 = (int)pi; //将pi强制性转型为int类型
3. 算数运算符
java支持小数求余;
4. 赋值运算符
赋值运算符中,+=,-+,*=,/=,%= 中,包含隐式类型转换;而直接赋值的运算符=则没有。
举个栗子:
example1:
byte b = 7;
b = 7+1; //程序报错,右边为int类型,而左侧byte类型;
example1:
byte b = 7;
b +=1 ; //+=符号自带隐式类型转换,因为输出为int型的8
5. 比较运算符
1.用 == 来比较2个基本主类型数据是否相等:
int a = 3;
byte b = 3;
if(a == b) //true
2.用来判断2个引用是否指向同一个对象:
Test a = new Test();
Test b = new Test();
Test c = a;
if(a ==c) //true
6. 逻辑运算符
异或:当相同时输出为true,不同时输出为false
短路与:当左侧为false时直接输出false,不再运行等号右侧;(效率较高,开发中常用)
短路或:当左侧为true时直接输出true,不再运行等号右侧;(效率较高,开发中常用)
7. 运算符优先级
8. 三目运算符
一般要求2个表达式语句的类型是一样的。
9. 位运算符
仅int型可以进行位运算符,逻辑同上述3.6逻辑运算符,需要将数值转换成二进制后,从个数往高位起,一一对应进行运算。
位运算符的左移<< 和右移>> :
负数移位过程:
10. 基本数据类型和字符串相连接
当string的值和基本数据类型相连接后,连接后的整体会组成一个新的string值。