+、 -、 +、 -、 *、/、 %
++(++a:先自加再赋值;a++:先赋值再自加)、–(自增自减不会改变数据类型)
+字符串连接
class AriTest{
public static void main(String[] args){
int num1=10;
int num2=++num1;//num1=11,num2=11
int num2=num1++;//num2=10,num1=11
}
}
练习
随意给出一个整数,打印显示它的个位、十位、百位数
class public Test(){
public static void main(){
int a=153;
int b=a/100;//百位数
int c=a%100/10;//十位数
int d=a%10;//个位数
System.out.println("数字" + a + "的情况如下:");
System.out.println("个位数:"+ d);
System.out.println("十位数:"+ c);
System.out.println("百位数:"+ b);
}
}
赋值运算符
=、 +=、 -=、 *= 、/= 、%=
1.可以连续赋值
2.+=、-=不会改变数据类型
short a=10; a += 2;//正确
int a=1; a *= 0.1;//a=0比较运算符
==、!=、<、>、<=、>=、instanceof(检查是否是类的对象)
逻辑运算符&、&&、|、||、!、^(一真一假则为真)
&逻辑与
&&短路与,左边为假后,不进行右边运算看例子
boolean b1=true;
int num1=10;
if(b1&(num1++>0)){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}//在这里输出的是我现在在北京,同时num1=11
boolean b1=true;
int num1=10;
if(b1&&(num1++>0)){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}//在这里输出的是我现在在北京,同时num1=11
上面结果相同
boolean b1=false;
int num1=10;
if(b1&(num1++>0)){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}//在这里,输出的是我现在在南京,同时num1=11
boolean b1=false;
int num1=10;
if(b1&&(num1++>0)){
System.out.println("我现在在北京");//b1为假,结果一定是假,直接把(num1++>0)短路掉了,如果符号左边是正确的,就需要判断右边的
}else{
System.out.println("我现在在南京");
}//在这里,输出的是我现在在南京,同时num1=10
!!!num1=10!!!
|、|| 同理:||左边是正确的时候,右边不运算了
开发中推荐使用短路与或
位运算符<<、>>、>>>、&、|、^、~
其中>>>是无符号右移
操作的都是整型数据
<<:*2^n(注意范围,最高的1不要超出符号位) >>:正数时用0补高位,负数时用1补高位 >>>:高位都用0补



