1算数运算符:+ - * / ++ --
+运算符
·加法运算:数值加数值 数值加字符
·连接 字符串加字符串 字符串+数值
public static void main(String[] args){
int a = 10;
int b = 5;
String c = "abcd";
String d = "efg";
System.out.println(a+b);
System.out.println(a+'c');
System.out.println(a+c);
System.out.println(c+d);
}
x++ ++x在单独运算中没有区别,但在混合运算中有区别。
int x、
int y
int y=1+x++ //x先运算后自加
int z=++x+1 //x先自加后运算
特殊注意:short s= 3;
s=s+2;
s+=2;
上面哪个会造成编码错误?
答:第二行,s是short型变量,s+2运算中2是整形变量,如果要赋值正常,需要类型转换正确形式如下:
s=(short)(s+2);
关系*(比较)运算符
< ,>, >=.<=,==,!=
<, >,>=,<= 只可以进行数值上的比较
==,!=能进行数值上的比较,也能进行逻辑值之间的比较
逻辑运算符
逻辑运算符:!(逻辑非) & | && ||
&&短路与:遇到第一个false后不进行后边的判断
||短路非:遇到第一个true后不进行后边的判断
逻辑值与逻辑值(false和true)之间的运算
public static void main(String[] args){
int a = 10;
int b = 5;
int c = 7;
System.out.println(a>b&b>c);//true&false=false
System,out.println(a>b&b<c); //ture&ture=ture
^(异或)
System.out.println(a>b^b<C);true^true=false
System,out,println(a>b^b>c);true^false=true
}
位运算:>> ,<<,,>>>(无符号右移),&,|,~,^
public static void main(String[] args){
int a = 10;
System.out.println(a<<1);//20
}
发现每左移以为,则数变成原来的二倍