zoukankan      html  css  js  c++  java
  • 【Java】Java_11运算符

    1.运算符(operator)

       Java 语言支持如下运算符:

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

        赋值运算符 =

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

        逻辑运算符:  &&||!

        位运算符:  &|^~ >><<>>> 

        条件运算符

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

    2.一元运算符(++, --)

    int a = 3;
    int b = a++;   //执行完后,b=3。先给b赋值,再自增。
    int c = ++a;   //执行完后,c=5。先自增,再给b赋值

    注意:java中的乘幂处理:

    int a = 3^2;    //java中不能这么处理, ^是异或符号。
    double b = Math.pow(3, 2);

    3.二元运算符

    整数运算:

    如果两个操作数有一个为Long, 则结果也为long

    没有long时,结果为int。即使操作数全为shot,byte,结果也是int.

    浮点运算:

    如果两个操作数有一个为double, 则结果为double.

    只有两个操作数都是float, 则结果才为float.

    4.布尔逻辑表达符

    逻辑与:&&&,逻辑或:|||,逻辑非:!。

    逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。

    逻辑与只要有一个为false, 则直接返回false.

    逻辑或只要有一个为true, 则直接返回true; 

    boolean c = 1>2&&2>(3/0);

    5.位运算符

    ~ -- 取反 &   -- 按位与    

    |  -- 按位或 ^  -- 按位异或   

    <<:左移运算符, >>:右移运算符 >>>:无符号移位运算符

    右移一位相当于除2取商。

    左移一位相当于乘2

    int a = 3*2*2;
    int b = 3<<2;  //相当于:3*2*2;
    int a = 12/2/2;
    int b = 12>>2;

    6.扩展运算符

    运算符 

    用法举例 

    等效的表达式 

    +=

        a += b

        a = a+b

    -=

        a -= b

        a = a-b

    *=

        a *= b

        a = a*b

    /=

        a /= b

        a = a/b

    %=

        a %= b

        a = a%b 

    7.字符串连接符

    “+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

    8.三目条件运算符

    三目条件运算符,语法格式:

      x ? y : z

     其中 x boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。

    运算符优先级的问题:


    R to L

    .   ( )   { }   ;   ,
    ++ --   ~ ! (data type)

    L to R

    * / %

    L to R

    + -

    L to R

    << >> >>>

    L to R

    <  >  <=  >=  instanceof

    L to R

    == !=

    L to R

    &

    L to R

    ^

    L to R

    |

    L to R

    &&

    L to R

    ||

    R to L

    ? :

    R to L

     =   *=   /=   %=  
     +=   -=   <<=   >>=   
    >>>=   &=   ^=   |=

     代码示意:

    public class TestOperator{
        public static void main(String[] agrs){
            //简单运算符
            int a = 1;
            int b = 2;
            int c = a+b;
            System.out.println("c的值为:"+c);
            
            //一元运算符
            int d = 1;
            int e =d++; //执行完后,d=1。先给e赋值,再自增
            int f =++d; //执行完后,f=3。先自增,然后再赋值,这里自增2次,在e那已经自增一次。
            System.out.println("e的值为:"+e);
            System.out.println("f的值为:"+f);
            
            //位运算符
            int m = 2;
            int n = 4;
            
            System.out.println(m&n);
            System.out.println(m|n);
            System.out.println(~n);
            System.out.println(m^n);
            
            //三目运算符
            int a1 = 10;
            int a2 = 20;
            System.out.println((a1>a2)?false:true);
        }
    }
  • 相关阅读:
    IBatis简介
    cntlm代理使用
    bash快捷键你知道几个?
    django的Form中添加属性
    EMACS 中文显示为方框
    git合并子树
    算法 排序 python 实现堆排序
    android org.eclipse.wst.sse.core 0.0.0' but it could not be found
    我的EMACS配置
    python 输入# 自动跳到行首
  • 原文地址:https://www.cnblogs.com/OliverQin/p/6710904.html
Copyright © 2011-2022 走看看