运算符

运算符

Java语音支持如下运算符:

  • 算术运算符:+,-,*,/,%,++,--

  • 赋值运算符:==

  • 关系运算符:>,<,>=,<=,==,!= instanceof

  • 逻辑运算符:&&,||,!

  • 位运算符:&,|,^,~,>>,<<,>>>(了解)

  • 条件运算符:?:

  • 扩展赋值运算符:+=,-=,*=,/=

算术运算符

public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        //Ctrl + D :复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);//装换为小数位0.5
        System.out.println(a/b);//int为0
        System.out.println(a%b);//取余数
    }
}
public class Demo02 {
    public static void main(String[] args) {
        long a =123123123123123L;
        int b = 123;
        short c = 10;
        byte d = 8;

        //如果有long 就输出long类型 没有输出int 根据优先级输出
        System.out.println(a+b+c+d);// long
        System.out.println(b+c+d);// int
        System.out.println(c+d);// int
        System.out.println((double) d);// double
    }
}

关系运算符

public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回的结果: 正确,错误   布尔值

        int a = 10;
        int b = 20;
        int c = 21;

        //取余:模运算
        System.out.println(c%a); //c/a 21/10=2...1

        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
    }
}

 

一元运算符

public class Demo04 {
    public static void main(String[] args) {
        //++   --  自增,自减  一元运算符

        int a = 3;
        int b = a++; //执行这行代码前,先给b赋值,再自增
        //a++  a = a + 1;
        System.out.println(a); //4
        //++a   a = a+ 1;
        int c = ++a; //执行这行代码前,先自增,再给b赋值


        System.out.println(a); //5
        System.out.println(a); //5
        System.out.println(b); //3
        System.out.println(b); //3
        System.out.println(c); //5
        System.out.println(c); //5

        //幂运算 2^3 2*2*2 = 8
        double pow = Math.pow(2,3);
        System.out.println(pow);
    }
}

逻辑运算符

public class Demo05 {
    public static void main(String[] args) {
        // 与(and) 或(or) 非(取反)
        boolean a = true;
        boolean b = false;

        System.out.println("a && b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为true
        System.out.println("a || b:"+(a||b));//逻辑或运算:两个变量有一个为真,则结果才为true
        System.out.println("! (a && b):"+!(a&&b));//如果是真,则变味假,如果是假则变为真

        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);//短路运算,前面为假后面不执行 c =5
        System.out.println(d);
        System.out.println(c); //5
        boolean f = (c>4)&&(c++>4);//都为真,c+1=6
        System.out.println(c);//6
        
    }
}

位运算

public class Demo06 {
    public static void main(String[] args) {
        /* 位运算
        A = 0011 1100
        B = 0000 1101

        A&B = 0000 1100// 0相同为0 1相同为1 不相同为0
        A|B = 0011 1101// 如果都是0为0 否则为1 有1为1
        A^B = 0011 0001// 相同为0 不相同为1
        ~B = 1111 0010// 跟变量b相反

        2*8 = 16 2*2*2*2
        效率极高!!!
        << 左移 *2
        >> 右移动 /2
        二进制
        0000 0000   0
        0000 0001   1
        0000 0010   2
        0000 0011   3
        0000 0100   4
        0000 1000   8
        0001 0000   16
        */

        System.out.println(2<<3);
    }
}

扩展运算符

public class Demo07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 10;
        int d = 20;
        a += b; // a = a+b
        System.out.println(a); // 30
        c -= d; // c = c-d
        System.out.println(c); // -10

        // 字符串连接符 +
        System.out.println(a+b);
        System.out.println(""+a+b);// a+b在后面是连接字符串
        System.out.println(a+b+"");// a+b在前计算结果
    }
}

三元运算符

public class Demo08 {
    public static void main(String[] args) {
        // x ? y : z
        // 如果 x == true,则结果为 y,否则结果为 z

        // 如果 <60 不及格 >60 及格
        int score = 80;
        String type = score <60 ?"不及格":"及格";// 必须掌握
        System.out.println(type);
    }
}

运算符优先级

点击跳转到运算符优先级

 

 

包机制

  • 语法格式

    package pkg1[. pkg2[.pkg3...]];
  • 一般利用公司域名倒置作为包名:com.ds.xxx

  • Java 程序中明确导入该包,使用“import”语句可完成此功能

    import package1[.package2...].(classname|*)
    ​
    //导入这个包下所有的类!
    import com.wg.base.*;

     

posted @ 2021-05-06 23:30  闲着的大叔  阅读(79)  评论(0)    收藏  举报