1、赋值运算符
从右往左运算,左边是可赋值的目标,返回计算结果
public class Main {public static void main(String [] argv){int a=10;int b=a=100;System.out.println(a); //输出100System.out.println(b); //输出100}
}
2、算术运算符
+ - * / %
(1)加法
支持字符串拼接,变量常量相加,隐式类型转换。类型无法隐式转换需要强制类型转换
public class Main {public static void main(String [] argv){int a=10;int b=a+100;String s1="aaa";String s2="bbb"+s1+a; //字符串可拼接// short c=b+a; //ERROR 类型不可转换long d=b+a; //True 可隐式转换short e=(short)(b+a); //True 强制转换System.out.println(e); //输出 120System.out.println(s2); //输出 bbbaaa10}
}
(2)减法
支持变量常量相减,隐式类型转换,不可转换需强制类型转换
public class Main {public static void main(String [] argv){int a=1000;int b=a-100;// short c=b-a; //ERROR 类型不可转换long d=b-a; //True 可隐式转换short e=(short)(b-a); //True 强制转换System.out.println(e); //输出 -100System.out.println(d); //输出 -100}
}
(3)乘法
支持变量常量相乘,隐式类型转换,不可转换需强制类型转换
public class Main {public static void main(String [] argv){int a=10;int b=a*100;// short c=b*a; //ERROR 类型不可转换long d=b*a; //True 可隐式转换short e=(short)(b*a); //True 强制转换System.out.println(e); //输出 10000System.out.println(d); //输出 10000}
}
(4)除法
整数类型向下取整,支持变量常量相除,隐式类型转换,不可转换需强制类型转换
public class Main {public static void main(String [] argv){int a=1000;int b=a/9;double c=30;double d=7;//short c=b/a; //ERROR 类型不可转换long f=b/a; //True 可隐式转换short e=(short)(b/a); //True 强制转换System.out.println(f); //输出 0 向下取整System.out.println(e); //输出 0System.out.println(c/d); //输出4.285714285714286}
}
(5)取模
支持变量常量取模,隐式类型转换,不可转换需强制类型转换
public class Main {public static void main(String [] argv){int a=1000;int b=a%9;double c=30.5;double d=7.5;//short c=b; //ERROR 类型不可转换long f=b; //True 可隐式转换short e=(short)(b); //True 强制转换System.out.println(f); //输出 1System.out.println(e); //输出 1System.out.println(c%d); //输出0.5}
}
3、括号运算符
可隐式类型转换,转换不了需强制类型转换
public class Main {public static void main(String [] argv){int a=10;int b=(a+5)*7;int c=a+5*7;int d=(b+3*(a+1));System.out.println(b); //输出 105System.out.println(c); //输出 45System.out.println(d); //输出 138}
}
4、自增自减运算符
以及+= -= *= /= %=
public class Main {public static void main(String [] argv){int a=10;System.out.println(a++); //输出 10System.out.println(++a); //输出 12System.out.println(a--); //输出12System.out.println(--a); //输出10int b=a/=1;System.out.println(b); //输出 10b=a+=1;System.out.println(b); //输出 11b=a-=1;System.out.println(b); //输出 10b=a*=1;System.out.println(b); //输出 10b=a%=1;System.out.println(b); //输出 0}
}
5、位运算
详见:位运算
public class Main {public static void main(String [] argv){int a=10;int b=9;//1010 1001int c=a&b;System.out.println(c); //输出 8c=a^b;System.out.println(c); //输出 3c=a|b;System.out.println(c); //输出 11c=~a;System.out.println(c); //输出 -11c=~b;System.out.println(c); //输出 -10}
}
6、关系运算符
> 大于
< 小于
== 等于(注意是两个等号连在一起,不是一个等号,使用时不要搞混了)
!= 不等于
>= 大于等于
<= 小于等于
运算得到Boolean类型的值
public class Main {public static void main(String [] argv){int a=10;int b=9;// int c=a>b; ERROR boolean类型无法转换为其它类型boolean c=a>b; System.out.println(c); //输出 truec=a<b;System.out.println(c); //输出 falsec=a==b;System.out.println(c); //输出 falsec=a!=b;System.out.println(c); //输出 truec=a>=b;System.out.println(c); //输出 truec=a<=b;System.out.println(c); //输出 false}
}
7、逻辑运算符
&& 与运算,要求两边同时为true才能返回true
|| 或运算,要求两边至少要有一个为true才能返回true
! 非运算,表示对表达式的结果进行反转
该运算符作用与boolea类型变量或值,其它类型不可。
还可能存在短路。
public class Main {public static void main(String [] argv){int a=10;int b=9;// int c=a&&b; ERROR 需作用boolean类型boolean d=true,e=false;boolean c=d&&e; System.out.println(c); //输出 falsec=d||e;System.out.println(c); //输出 truec=d&&d;System.out.println(c); //输出 truec=e&&e;System.out.println(c); //输出 falseec=!d;System.out.println(c); //输出 falsec=!e;System.out.println(c); //输出 true}
}
8、三元运算符
public class Main {public static void main(String [] argv){int a = 10;char b = a > 10 ? 'A' : 'B'; //三元运算符需要三个内容,第一个是判断语句,第二个是满足判断语句的值,第三个是不满足判断语句的值System.out.println(b); //输出 B}
}