算术运算符 + - * / %
+ 加 ++
- 减 --
* 乘
/ 除
% 模(取余数)
++a和a++的区别
++写在前 先自增再运算
++写在后 先运算再自增
--同理
public static void main(String[] args){
int a=5;
int b=3;
int c=a%b; //c=2,5/3余2;
int d=a/b; //d=1,int参与运算时,自动省略小数部分
}
赋值运算符 = += -= *= %=
public static void main(String[] args){
int a=1;
int b=1;
b+=a; //就是b=b+a; 1+1=2;
short c=1;
int d=2;
c+=d; //这种写法会自动隐式转换 现在的c还是short类型
//byte e=c; //会报错 提示e是short类型
double f=2.2;
int h=2;
h+=f; //结果是4 int参与运算自动省略小数部分 自动隐式转换为int类型
}
比较运算符 > < >= <= == !=
特点:结果是个布尔值
==比较的是基本数据类型的值 是否相等
==比较的是引用类型的地址值 是否一致
逻辑运算符 & | ! ^ 与 或 非 异或 短路与&& 短路||
特点:结果是个布尔值
& 一错全错 全真才真
| 一对全对 全错才错
^ 全真为假 全假为真 真假才真
&和&&的区别:&&遇到第一false就返回false,不往后执行了,节省内存
| 和 || 的区别: || 遇到第一个tru就返回true了,不往后执行了,节省内存
三目表达式
逻辑表达式?表达式1?表达式2;
逻辑表达式是个true时,返回表达式1;是个false时,返回表达式2;
public static void main(String[] args){
int a=5<2?10:20; //5<2是个false,所以a=20;
System.out.println(a);
}