码迷,mamicode.com
首页 > 编程语言 > 详细

java中的运算符

时间:2021-02-01 11:46:55      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:als   demo   表达   com   支持   +=   static   --   连接符   

运算符

Java语言支持如下运算符

  • 算数运算符:+,- ,*,/,%,++,--
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!=,instanceof
  • 逻辑运算符:&&,||,!
  • 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
  • 条件运算符?:
  • 扩展赋值运算符:+=,-=,*=,/=

优先级

Java 语言中运算符的优先级共分为 14 级,其中 1 级最高,14 级最低。在同一个表达式中运算符优先级高的先执行。下面列出了所有的运算符的优先级以及结合性。

优先级 运算符 结合性
1 ()、[]、{} 从左向右
2 !、+、-、~、++、-- 从右向左
3 *、/、% 从左向右
4 +、- 从左向右
5 ?、?、>>> 从左向右
6 <、<=、>、>=、instanceof 从左向右
7 ==、!= 从左向右
8 & 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 =、+=、-=、*=、/=、&=、|=、^=、~=、?=、?=、>>>= 从右向左
一元运算符
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
        int c=++a;//执行完代码前,先自增,再给c赋值
        
        System.out.println(a);//5
        System.out.println(b);//3
        System.out.println(c);//5
        
        //幂运算 2^3  2*2*2 = 8;   很多运算会使用工具类来操作
        double pow = Math.pow(2,3);
        System.out.println(pow);
    }
}
二元运算符
public class Demo01 {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);
    }
}
三元运算符
public class Demo08 {
    public static void main(String[] args) {
        // x?y:z
        //如果x==true,则结果为y,否则结果为z

        int score=80;
        String type=score>60?"及格":"不及格";//必须掌握
        //if
        System.out.println(type);//及格
    }
}
关系运算符
public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回的结果:正确 错误  布尔值
        //if
        int a=10;
        int b=20;
        int c=21;
        System.out.println(c%a);//取余,模运算
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
    }
}
逻辑运算符
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);
        System.out.println(d);//false
        System.out.println(c);//5:与运算前件为假就不会执行后件了
    }
}
位运算
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101
        -------------------------------
        A&B = 0000 1100
        A|B = 0011 1101
        A^B = 0011 0001
        ~B = 1111 0010

        2*8=16  2*2*2*2
        效率极高!!!
        <<  *2
        >>  /2

        0000 0000       0
        0000 0001       1
        0000 0010       2
        ……
        0000 1000       8
        0001 0000       16
         */
        System.out.println(2<<3);//16
    }
}
扩展1:
public class Demo02 {
    public static void main(String[] args) {
        long a=212121113135131L;
        int b=123;
        short c=10;
        byte d=8;
        System.out.println(a+b+c+d);//long  有long就为long(同理对于double)
        System.out.println(b+c+d);//int
        System.out.println(c+d);//int 无论是否有int优先级低于int结果都为int
    }
}
扩展2:
package operator;

public class Demo07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        a+=b;//a=a+b
        a-=b;//a=a-b
        System.out.println(a);

        //字符串连接符    +   ,String
        String c=""+a+b;
        String d=a+b+"";
        System.out.println(""+a+b);//1020   String
        System.out.println(a+b+"");//30     String
    }
}

java中的运算符

标签:als   demo   表达   com   支持   +=   static   --   连接符   

原文地址:https://www.cnblogs.com/Victor0118/p/14349262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!