Java基础07

Java基础07,第1张

Java基础07 运算符

    算数运算符

    加(+),减(-),乘(*),除(/),取模(我们常说的取余)(%),自增(++),自减(–)

    public class demo01 {
        public static void main(String[] args) {
            int a=4;
            int b=2;
            System.out.println(a/b);
            //此处输出为2,我们算得也为2
    
            int a1=3;
            int b1=2;
            System.out.println(a1/b1);
    		//此处输出为1,但我们算结果应该为1.5.原因在于出c1为整数型至于走整数部分
            
            int a2=3;
            int b2=2;
            System.out.println(a2/(double)b2);
            //此处输出为1.5,证明我们算得也为1.5.我们b2强制转换为了double类型,所得结果也为double类型了
    
            
    
        }
    }
    
    
    public class demo01 {
        public static void main(String[] args) {
            int a=3;
            int b=a++;//此处a++相当于一句a=a+1的代码,因为++是在a的后面,所以a是先赋值给b,再执行a++
            int c=++a;//此处++a也相当于一句a=a+1的代码,因为++是在a的前面,所以a是先执行a++,再赋值给c
            System.out.println(a);
            //输出值为5
            System.out.println(b);
            //输出值为3
            System.out.println(c);
            //输出值为5
        }
    }
    

    赋值运算符:=(eg:int a=3;//就是把3的值赋给a)

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

    a+=b;<==>a=a+b;

    a-=b;<==>a=a-b;

    a*= b;<==>a=a *b;

    a/=b;<==>a=a/b;

    关系运算符

    大于(>),小于(,),等于(==),大于等于(>=),小于等于(<=),不等于(!=), instanceof

    instanceof:测试它左边的对象是否是它右边的类的实例.

    关系运算类型返回 boolean 的数据类型。

    逻辑运算符

    &&(与),||(或),!(非)

    public class demo01 {
        public static void main(String[] args) {
            boolean a=false;
            boolean b=false;
            boolean c=true;
            boolean d=true;
            System.out.println(a&&b);//输出为false
            System.out.println(a&&c);//输出为false
            System.out.println(c&&d);//输出为true
            System.out.println(a||b);//输出为false
            System.out.println(a||c);//输出为true
            System.out.println(c||d);//输出为true
            System.out.println(!a);//输出为true
            System.out.println(!c);//输出为false
            
            
            //短路运算
            int m=5;
            
            boolean j=(m>5)&&(m++>5);
            System.out.println(j);
            System.out.println(m);//输出为5,在上面代码中,&&检测到前一个为假,则直接输出假,不进行&&后面计算
    
    
            boolean k=(m>4)||(m-->4);
            System.out.println(k);
            System.out.println(m);//输出值为5,在上面代码中,||检测到前一个为真,则直接输出真,不进行||后面计算
        }
    }
    
    

    位运算符

    与(&),或(|),非(~),异或(^),左移(<<),有符号右移(>>),无符号右移(>>>)

    在计算机里1为真0为假

    A=0011 0011

    B=1010 1010

    所以,

    A&B是按每一位都1为1,有0出0,输出为:0010 0010

    A|B是按每一位都0为0,有1出1,输出为:1011 1011

    ~A是按每一位进1出0,进0出1,输出为:1100 1100

    A^B是按每一位相同输出0,不同输出1, 输出为1001 1001

    当计算机直接用位运算是最快的

    一个字节有8bit 左移即把每一位往左移;右移反之

    A<<1 输出为:0110 0110 相当于(整数型)*2,(低位补0)

    A>>1 输出为:0001 1001 相当于(整数型)/2,(正数高位补0,负数高位补1)

    A>>>1输出为:0001 1001 相当于(整数型)/2,(高位补0)

    条件运算符:?

    public class demo01 {
        public static void main(String[] args) {
            int score=80;
            String type=score<60?"不及格":"及格";
            System.out.println(type);
             
        }
    }
    
    
Java运算符优先级列表 优先级运算符结合性1[]、()、.从左向右2!、~、 ++、 –从右向左3* 、/ 、%从左向右4+ 、 -从左向右5<<、 >>、 >>>从左向右6< 、<= 、>、 >=、 instanceof从左向右7== 、!=从左向右8&从左向右9^从左向右10|从左向右11&&从左向右12||从左向右13?:从右向左14=、 += 、-= 、*= 、/=从右向左

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5710124.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存