目录
运算符和C语言基本一样
算术运算符
单目运算符:自增自减运算符
比较运算符
逻辑运算符
位运算符(C语言好像没有)
优先级
交换算法
运算符和C语言基本一样
算术运算符
比如拆分一个三位数
public class java练习代码 {
    public static void main (String[] args) {
        int num2=986;
        int bai2=num2/100;
        int ge2=num2%10;
        int shi2=num2%100/10;
        System.out.println(num2+"的百位数字是:"+bai2);
        System.out.println(num2+"的十位数字是:"+shi2);
        System.out.println(num2+"的个位数字是:"+ge2);
    }
}
 

单目运算符:自增自减运算符
public class java练习代码 {
    public static void main (String[] args) {
        int a=1;
        a+=2;
        System.out.println(a);
        System.out.println("-------");
        int b=12;
        --b;
        System.out.println(b);
        System.out.println("-------");
        int c=5;
        // ++在后,先用再+
        //--在后,先用再-
        int d=c++;
        System.out.println(c);
        System.out.println(d);
        System.out.println("-------");
        //++在前,先+再用
        //--在前,先-再用
        int x=15;
        int y=++x;
        System.out.println(x);
        System.out.println(y);
    }
} 

比较运算符
字符串之间的等值比较不能用==,而要用.equals()
import java.util.Scanner;
public class java练习代码 {
    public static void main (String[] args) {
        int num1=23;
        int num2=23;
        boolean flag=num1<num2;
        System.out.println(flag);
        double d1=1.0;
        double d2=1.0000000000000000000123;
        System.out.println(d1==d2);
        String str1="abc";
        String str2="abc";
        System.out.println(str1==str2);
        Scanner sc=new Scanner(System.in);
        String str3=sc.next();
        System.out.println(str1==str3); //比较字符串的地址是否一致
        boolean f=str1.equals(str3);  //比较字符串的值是否一致
        System.out.println(f);
        char c='a';
        char d='b';
        System.out.println(c==97);
        System.out.println(c<d);
    }
}
 

逻辑运算符
&& 逻辑与 两个条件同时成立,整个表达式才成立 :同真则真,有假则假
|| 逻辑或 两个条件只要有一个成立,则整个表达式成立 :有真则真,同假则假
支持短路,即第一个表达式的结果就可判断整个表达式的结果,则第二个表达式就无需判断
!取反
public class java练习代码 {
    public static void main (String[] args) {
        int num1=15;
        int num2 =1;
        boolean f=(num1<10)&&(num2>2);
        System.out.println(f);
        boolean f2=(num1<10)||(num2>2);
        System.out.println(f2);
        //&& || 支持短路
        boolean f3=(num1<10)||(num2++<3);
        System.out.println(f3);
        System.out.println(num2);
        //取反
        boolean f4=!f3;
        System.out.println(f4);
    }
}
 

位运算符(C语言好像没有)
<< 左移:相当于乘法,乘以2的N次方
>>右移:相当于整除,除以2的N次方
& 按位与 :同1则1,遇0则0
|按位或:有1则1,同0则0
^ 按位异或 :不同为1,相同为0
public class java练习代码 {
    public static void main (String[] args) {
        int a=5;
        int b=5<<1;
        System.out.println(b);  //结果是10
        int c=5>>1;
        System.out.println(c);
        int m=5;
        int n=13;
        System.out.println(m&n);
        int num5=5;
        int num6=13;
        System.out.println(num5^num6); //8
        System.out.println(num5^num6^num6); //5
    }
}
 

优先级
先运算,再比较,然后连接,最后赋值
小括号的优先级最高,建议添加小括号增强代码的可读性。
交换算法
方法一:申请临时变量(用的最多)
temp=a;
a=b;
b=temp; 
方式二:加减法
a=a+b;
b=a-b;
a=a-b; 
方式三:异或法
a=a^b;
b=a^b;
a=a^b; 
                














