zoukankan      html  css  js  c++  java
  • Java入门(四):运算符优先级、关键字与保留字

    上次介绍了Java的运算符,今天来介绍下运算符的优先级,以及Java的关键字、保留字。

    一、运算符优先级

    序号

    运算符

    名称

    目数

    结合性

    说明

    1

    [ ]

    方括号

     

    从左向右

    优先级最高

    .

    点号

    双目

    ( )

    圆括号

     

    2

    !

    逻辑非运算

    单目

    从右向左

    ~

    按位非运算

    单目

    ++

    自增

    单目

    --

    自减

    单目

    +

    正号

    单目

    -

    负号

    单目

    ( )

    强制类型转换

     

    new

    new关键字

     

    3

    *

    乘号

    双目

    从左向右

    算术运算符

    /

    除号

    %

    取余

    4

    +

    加号

    双目

    从左向右

    算术运算符

    -

    减号

    5

    << 

    带符号左移位运算

    双目

    从左向右

    位运算符

    >> 

    带符号右移位运算

    >>> 

    无符号右移运算

    6

    小于

    双目

    从左向右

    关系运算符

    <=

    小于等于

    双目

    大于

    双目

    >=

    大于等于

    双目

    instanceof

    对象是否为特定类的实例

    双目

    7

    ==

    关系等于运算

    双目

    从左向右

    关系运算符

    !=

    关系不等于运算

    双目

    从左向右

    8

    &

    按位与运算

    双目

    从左向右

    位运算符

    9

    ^

    按位异或运算

    双目

    从左向右

    10

    |

    按位或运算

    双目

    从左向右

    11

    &&

    逻辑与运算

    双目

    从左向右

    逻辑运算符

    12

    ||

    逻辑或运算

    双目

    从左向右

    13

     ? :

    三目运算

    三目

    从右向左

    14

    =

    赋值运算

    双目

    从右向左

    优先级最低

    +=

    混合赋值运算符

    -=

    *=

    /=

    %=

    &=

    |=

    ^=

    <<=

    >>=

    >>>=

    下面用代码来介绍下从右向左计算。

    package javalearningday03;
    
    /**
     * 
     * @author 小川94
     * @date 2018年1月28日
     */
    public class JavaOperationPriority {
    
        public static void main(String[] args) {
            testMethod();
        }
        
        /**
         * 由右向左计算,在进行运算代码编写时,建议加上括号区分层级性,增加可读性,同时方便后期维护
         */
        public static void testMethod() {
            // 右结合运算:运算符右边是否连接变量
            // -n++,-号右边连接变量n,++右边没有连接变量,先算-号,再算++
            int n = 5;
            int m = -n++; //后加加是先算整体,(-n)++为-5
            System.out.println(m); // m = -5
            System.out.println(n); // n = 6
            
            // ++右边连接变量i,先计算++i,再计算-(++i)
            int i = 5;
            int k = -++i;
            System.out.println(i); // i = 6
            System.out.println(k); // k = -6
            
            int a = 5;
            int b = -8-++a;
            System.out.println(a); // 6
            System.out.println(b); // -14
            
            int c = 5;
            int d = c<<=2; //c=c<<2; d = c
            System.out.println(c); // 20
            System.out.println(d); // 20
        }
    }

    二、Java关键字和保留字

    序号

    关键字

    含义

    1

    abstract

    修饰类、方法,成为抽象类、抽象方法

    2

    assert

    用来查找内部程序错误

    3

    boolean

    基本数据类型之一,布尔类型

    4

    break

    跳出一个switch或结束一个循环

    5

    byte

    基本数据类型之一,8位整型

    6

    case

    switch语句的一个分支

    7

    catch

    捕获异常的try块子句

    8

    char

    基本数据类型之一,字符型

    9

    class

    定义一个类

    10

    const

    未使用

    11

    continue

    跳过continue语句后面的循环部分,进入下一次循环

    12

    default

    switch的缺省子句

    13

    do

    do/while循环最前面的语句

    14

    double

    基本数据类型之一,双精度浮点数

    15

    else

    if语句的else子句

    16

    enum

    枚举类型

    17

    extends

    表明一个类型是另一个类型的子类型

    18

    final

    一个常量,或不能覆盖的一个类或非法

    19

    finally

    try语句块中总会执行的部分

    20

    float

    基本数据类型之一,单精度浮点数

    21

    for

    一种循环类型

    22

    goto

    未使用

    23

    if

    一个条件语句

    24

    implements

    定义一个类实现的接口

    25

    import

    导入一个包

    26

    instanceof

    判断一个对象是否为一个类的实例

    27

    int

    基本数据类型之一,32位整型

    28

    interface

    一种抽象类型,其中包含可以由类实现的方法

    29

    long

    基本数据类型之一,64位长整型

    30

    native

    用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的

    31

    new

    用来创建新的实例对象

    32

    null

    一个空引用

    33

    package

    包含类的一个包

    34

    private

    一种访问控制方式,私有模式,只能由该类的方法访问

    35

    protected

    一种访问控制方式,保护模式,只能由该类、其子类和同包类的方法访问

    36

    public

    一种访问控制方式,共有模式,所有类的方法都可以访问

    37

    return

    从一个方法返回

    38

    short

    基本数据类型之一,16位短整型

    39

    static

    表明具有静态属性,属于类,不属于类的对象

    40

    strictfp

    对浮点数计算使用严格的规则

    41

    super

    超类对象或构造函数

    42

    switch

    一个选择语句

    43

    synchronized

    对线程而言是原子的方法或代码块

    44

    this

    当前类的一个方法或构造函数的隐含参数

    45

    throw

    抛出一个异常

    46

    throws

    一个方法可能抛出的异常

    47

    transient

    标志非永久的数据

    48

    try

    捕获异常的代码块

    49

    void

    修饰方法,表示无返回值

    50

    volatile

    确保一个字段可以由多个线程访问

    51

    while

    一种循环

     

     

     

    52

    true

    不是关键字,是字面量,但是依旧不能当做变量名使用,属于保留字

    53

    false

    文章首发于我的个人公众号:悦乐书。喜欢分享一路上听过的歌,看过的电影,读过的书,敲过的代码,深夜的沉思。期待你的关注!

    公众号后台输入关键字“Java学习电子书”,即可获得12本Java学习相关的电子书资源,如果经济能力允许,还请支持图书作者的纸质正版书籍,创作不易。

  • 相关阅读:
    jmeter中webdriver插件,进行自动化压测
    JMeter对Selenium自动化代码进行压测
    自动化构建jenkins配置
    jmeter压测app
    apk反编译
    eclipse下:selenium+python自动化之Chrome driver
    selenium+eclipse+python环境
    Eclipse 打开时“发现了以元素'd:skin'”开头的无效内容。此处不应含有子元素(转)
    appium系列教程(转载)
    SDK Manager.exe 无法启动,一闪而过的解决办法
  • 原文地址:https://www.cnblogs.com/xiaochuan94/p/8371386.html
Copyright © 2011-2022 走看看