目录
- 运算符
- Math数学函数与常量
- 类型转换
- 强制类型转换
- 自增和自减运算符
- 关系运算符
- 三元运算符
- 位运算
- & 与
- | 或
- ^ 异或
- ~ 按位取反
- << >> 左移 右移
- 运算符优先级
运算符
Math数学函数与常量
import java.lang.Math.*;
public class Test{
public static void main(String[] xxx){
double x1 = Math.sqrt(7); // 开方
double x2 = Math.pow(3, 4); // 3 的 4 次方
double x3 = Math.sin(30);
System.out.println(x1);
System.out.println(x2);
System.out.println(x3);
}
}
类型转换
虚线表示进度丢失。
强制类型转换
默认小的不能转换为大的。
可以进行强制类型转换,但是会丢失信息。
基本类型的强制转换,实际上基本没什么用。
自增和自减运算符
a++ 先运算后+1
++a 先+1后运算
import java.lang.Math.*;
public class Test{
public static void main(String[] xxx){
int a = 10;
if (++a > 10){
System.out.println("====" + a);
}else{
System.out.println("####" + a);
}
}
}
注意:b = b++; b是不会变化的。
关系运算符
== 相等
!= 不等
&& 并且
|| 或
< 小于 > 大于
三元运算符
import java.lang.Math.*;
public class Test{
public static void main(String[] xxx){
int a= 10;
int b = 10;
int m1 = a > b ? 20:30;
float m2 = a < b ? 23.5F : 34.45F;
System.out.println(m1);
System.out.println(m2);
}
}
位运算
public class Test{
public static void main(String[] xxx){
int a = 13;
int b = 59;
int m1 = a & b;
int m2 = a | b;
int m3 = a ^ b;
int m4 = ~a;
System.out.println(m1);
System.out.println(m2);
System.out.println(m3);
System.out.println(m4);
}
}
& 与
| 或
^ 异或
非代码书写:2^4 = 16
代码书写: 2^4 异或
~ 按位取反
每一位都取反。
<< >> 左移 右移
int k1 = 3;
k1 = k1 << 4; // 乘2的四次方
System.out.println(k1);
k1 = k1 >> 3; // 除以2的3次方
System.out.println(k1);
向右移动,左边补的是符号位
向左移动,右边补的是0。
> 始终补0