① +
可进行加法运算(数值+数值;数值+字符)
可进行连接(字符串+字符串;字符串+数值)
int a = 5; int b = 7; String c ="ab"; String d ="cd"; System.out.println(a+b); //12 数值+数值 System.out.println(a+'c'); //104 数值+字符(c的编码表对于99) System.out.println(c+d); //abcd 字符串+字符串 System.out.println(a+c); //5ab 数值+字符串
② - * /
只进行算法运算
int a = 10; int b = 5; System.out.println(a-b); //输出5 System.out.println(a*b); //输出50 System.out.println(a/b); //输出2
③++ -- ++x --x
单独的++ -- ++x --x无区别
混合运算中++ --先运算后自增 ++x --x先自增后运算
y = x++ +1; //即 y=x+1,x=x+1 先运算再自增 y = ++x +1; //即 x=x+1,y=x+1 先自增再运算
①> < >= <=
只能进行数值之间的比较
②== !=
可以进行数值之间的比较 还可以进行逻辑值与逻辑值,引用类型与引用类型比较
boolean a = true; boolean b = false; System.out.println(a==b); //输出false System.out.println(a!=b); //输出true
String a = "abc"; String b = "efg"; System.out.println(a==b); System.out.println(a!=b);
| & ! && || ^
是逻辑值(false和true)之间的运算
①& 逻辑与 && 短路与
int a = 5; int b = 7; int c = 10; System.out.println(a<b & b>c); //全为真时输出真 System.out.println(a<b && b>c); //全为真时输出真 System.out.println(a>b && b>c); //出现第一次false时后面不运算
②| 逻辑或 || 短路或
int a = 5; int b = 7; int c = 10; System.out.println(a<b | b>c); //有真时输出真 System.out.println(a<b || b>c); //有真时输出真 System.out.println(a>b || b>c); //出现第一次true时后面不运算
①=
把右边的值赋给左边
数据类型 变量 = 值;
byte a = 10; int b = a; //默认转换 short c = (short)b; //强制转换
②+= -= *= /=
赋值运算 会进行隐形的类型转换
例题:
short s = 3; s = s+3; //报错 s+3上升为int类型 s += 3; //输出6 隐式的类型转换 s=(short)(s+3)
(条件表达式)?表达式1:表达式2
true时返回表达式1
false时返回表达式2
int a = 10; int b = 5; int max = (a>b)?a:b; //输出10 String s = (a>b)?"成立":"不成立"; //输出成立
对bit位进行运算
①>> << >>>
int a = 10; System.out.println(a<<1); //二进制bit位左移 System.out.println(a>>1); //二进制bit位右移 System.out.println(a>>>1); //二进制bit位右移 无符号右移(负数移位后会默认补零为正数)
②& | ~ ^
int x = 4; int y = 3; System.out.println(x & y); //输出0 System.out.println(x | y); //输出7 System.out.println(~x); //输出-5 System.out.println(x ^ y); //输出7