由于Java是强类型语言,所以需要进行有些运算的时候,需要用到类型转换
低 -----------------------------------------------------------------高
byte, short, char --> int --> long --> float --> double
运算中,不同类型的数据先转化为同一类型,然后进行运算。
强制类型转换
(类型)变量名 高------低
自由类型转换
(类型)低------高
注意点
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 拔高容量转换为低容量的时候,强制转换
- 转换的时候可能存在内存溢出,或精度问题
运算符
Java语言支持如下运算符:优先级()
- 算术运算符:+,-,*,/,%,++,--
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=instance of
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符?:
- 扩展运算符:+=,-=,*=,/=
//++ -- 自增,自减 一元运算
int a = 3;
int b = a++; //执行完这行代码后,先给b赋值,再自增
int c = ++a;
//a = a + 1;
System.out.println(a);
//a++ a = a + 1;
//int c = ++a; //执行完这行代码前,先自增,再给c赋值
//幂运算 2^3 222 = 8
double pow = Math.pow(2,3);
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(b&&a)); //逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b:"+(a||b)); //逻辑或运算:两个变量有一个为真,则结果才为true
System.out.println("!(a && b):"+!(a&&b)); //如果是真,则变为假,如果是假则变为真
/*
A = 0011 1100
B = 0000 1101
------------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
2*8 = 16 2*2*2*2
<< *2
>> /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
int a = 10;
int b = 20;
a+=b; //a = a+b
a-=b; //a = a-b
System.out.println(a);
//字符串连接符 + ,String
System.out.println(""+a+b);
System.out.println(a+b+"");
// X ? y : z
//如果x==true 则结果为y,否则结果为z
int score = 80;
String type = score < 60 ?"不及格":"及格";
// if
System.out.println(type);