Java运算符总结

运算符

在java中我们将运算符分为六个大类:算数运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符

  • 算数运算符:

加法运算(+):需要区分两个方面:1.如果+号的两边都是数字的话,那么这个+表示的数学上的加法 2.如果+号的两边,只有有一个字符串,那么这个+表示的是字符串连接符

通过下面这段代码加以区分: 

class Test{
    public static void main(String[] args){
        System.out.println(2+3);
        System.out.println("我爱"+"Java");  
    }
}

 输出:5   我爱Java

减法运算(-)/乘法运算(*) :表示数学上的减法和*=乘法,无特殊含义。例如:System.out.println(10-2*5);//输出0

 除法运算(/):也表示数学上的除法,但是需要注意!!如果两边都是整数 结果就是整数(整除),如果两边至少存在一个小数,计算结果就是小数

取余运算(%): 可理解为整除后得到的余数为计算结果。

自加运算(++) :细分为两类:前++ 和 后++,前者本身直接+1再参与运算,后者先参与运算再本身+1。前者由于比较难理解,通过一个图说明。

自减运算(--)    :与自加运算同理。

通过一段代码来解释:

class Test{
    public static void main(String[] args){
        int i=3;
        i++;
        System.out.println(i);  //i++并没有被输出即临时存储区的值未被调用,此时输出i变为了4
        System.out.println(i++);//i++直接被输出即临时存储区的值被调用,输出4,i此时变为5
        int j=i++;//此时i是5,i++赋值给j,则临时存储区的值被调用,j=5,i变为6
        System.out.println(j);  //输出5
        System.out.println(i);  //输出6
        i=i++;//i++赋值给j,则临时存储区的值被调用,i=6
        System.out.println(i);  //输出6
        i=i++;//同理,i=6
        System.out.println(i);  //输出6
        //由于临时存储区的值一直被调用,则无论有多少个i=i++;,i的值都为为6,除非进行其他操作
        
        i=1;
        j= i++ + ++i + ++i + i++;//第一个i++ 参与运算值为1,i变为2 ,第二个 ++i,直接+1值为3,第三个同理值为4,第四个直接被调用值为4 ,i变为5
        // 1     3     4    4
        System.out.println(j); 
        System.out.println(i); //此时值变为5
       
    }
}

输出:4  4  5  6   6   6   12     5

  • 赋值运算符

赋值运算符中有+= ,-=,/=,*=,/=,%=,=,前六种都是通过与自身进行+-*/运算再将值赋给自身 

注意:

         short s=3;

        //s=s+3;不兼容的类型: 从int转换到short可能会有损失

           s+=3;//不会报错,因为他是将值直接赋值给自身

        System.out.println(s);

  • 比较运算符

有> <  >=   <=  ==  != ,六种运算符,是用来比较两个值的,用运算符比较两个值时,结果是一个逻辑值,不是 ture(成立) 就是 false(不成立)的运算符号。

注意:不管是在基本数据类型还是在面向对象中    ==永远比的是两个变量(常量)当中所存储的那个数据的地址!
             常量在常量池中的地址;对象在堆内存中的地址

  • 逻辑运算符

单与(&)和双与(&&)同真则真,遇假则假,两者区别是单与必须两边都运算,双与左边一旦为假,右边无论真假,结果都是假,所以右边可以不运行。

单或(|)双或(||)有真则真,同假则假。两者的区别是单或必须两边都运算,双或左边一旦为真,右边无论真假,结果都是真,所以右边可以不运行

非(!):非真就是假,非假就是真

异或(^):相同为假,不同为真

它们的运算结果都是一个boolean类型。

  • 位运算符

位运算符是二进制之间的运算。

&,各位比较,同1则1,遇0则0

|,各位比较,     有1则1,同0则0

^,各位比较,不同为1 相同为0

>> ,后面跟整数,向右移位,移动后与原位置比较,未在原位置则删除

<<,后面跟整数,向左移位,移动后与原位置比较,未在原位置则删除 

class Test{
    public static void main(String[] args){
  
        int m=7;
        int n=11;
        System.out.println(m&n);    //3
        /*
            0111
            1011
           &0011 3
        */
        System.out.println(m|n);    //15
        /*
            0111
            1011
           |1111 15
        */
        System.out.println(m^n);    //12
        /*异或:不同为真 相同为假
            0111
            1011
           ^1100 12
        */
        System.out.println(m>>2);   //1
        /*
            0111
              01 11
        */
        System.out.println(m<<2);   //28
        /*
            0111
          011100
        */
        System.out.println(0b10010101>>3);
        //10010
        System.out.println(0b10010101<<3);
        //10010101000
        //x>>y x/2^y 
    }
}
  • 三目运算符

 形式:                                                  变量=布尔表达式(条件表达式) ? 值1 : 值2;  

                        如果布尔表达式的结果是true,则将值1赋予变量,如果布尔表达式的结果是false,则将值2赋予变量

class Test05{
    public static void main(String[] args){
        int a=5;
        int b=6;
        int min=a>b?b:a;//表达式值为假,则是后者a的值
        System.out.print(min);
    }
}

 

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值