上次介绍了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); //
System.out.println(b); // -14 int c = 5;
int d = c<<=2; //c=c<<2; d = c
System.out.println(c); //
System.out.println(d); //
}
}

二、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学习相关的电子书资源,如果经济能力允许,还请支持图书作者的纸质正版书籍,创作不易。

Java入门(四):运算符优先级、关键字与保留字的更多相关文章

  1. java表达式中运算符优先级

    运算符优先级:运算符*和/(以及%)的优先级高于+和-(优先级越高,越早运算) 在逻辑运算符中,!拥有最高优先级,之后是&&,接下来是||. 一般来说,相同优先级的运算符的运算顺序是从 ...

  2. java中的标识符、关键字、保留字

    Java中关键字(keyword)和保留字(reservedword) Keyword :Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等. Reserv ...

  3. 针对安卓java入门:运算符和表达式

    逻辑运算符 &&和&判断是一样的,区别在于过程,&会把整个过程算一遍,&&一旦碰到false就不会往下

  4. js运算符、关键字、保留字、转义字符

  5. Java 之常用运算符(3)

    什么是运算符: 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 age 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java 语言中常用 ...

  6. [Python3 填坑] 003 关键字?保留字?预留字?

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 网上搜索 2.3 结论 2.4 后记 1. print( 坑的信息 ) 挖坑时间:2019/01/04 明细 坑的编 ...

  7. 【JAVA零基础入门系列】Day5 Java中的运算符

    运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...

  8. 1.Java关键字和保留字

    关键字和保留字 http://www.cnblogs.com/wwxbi/p/4292170.html 访问控制 private protected public 类,方法和变量修饰符 abstrac ...

  9. java SE 入门之运算符(第三篇)

    在 java 中主要有以上运算符,分为 赋值运算符 ,算术运算符.关系运算符(比较运算符),逻辑运算符和三目运算符(三元运算符). 我们一起来学习下吧! 一.赋值运算符 赋值运算符主要有五个.分别是 ...

随机推荐

  1. nginx实现动态/静态文件缓存(week4_day1_part2)-技术流ken

    nginx实现静态文件缓存实战 1.nginx静态文件缓存 如果要熟练使用nginx来实现文件的缓存,那下面的几个指令你必须要牢记于心 指令1:proxy_cache_path 作用:设置缓存数据的相 ...

  2. Raft 基础

    目录 三个状态 什么是任期 节点之间的通信 1. 三个状态 Raft 设计了 3 个状态,用于表示节点的状态,分别是跟随者,候选者,领导者. 领导者:通常只有一个领导人,并且其他节点都是跟随者. 跟随 ...

  3. WebBrowser引用IE版本问题,更改使用高版本IE

    做了一个Winform的项目.项目里使用了WebBrowser控件.以前一直都以为WebBrowser是直接调用的系统自带的IE,IE是呈现出什么样的页面WebBrowser就呈现出什么样的页面.其实 ...

  4. asp.net-基础-20180321

    C#与.NET的关系 C#不是语言,.net是平台.

  5. stringMVC_09文件批量上传

    一.思路 在文件上传的基础上引入数组可以实现批量上传,只需要更改一下前段页面和controller类即可 文件上传: https://www.cnblogs.com/aihuadung/p/10167 ...

  6. Python_简单三级菜单制作

    一:制作要求 1.三级菜单 2.可依次选择进入各子菜单 3.所需新知识点:字典,列表 *本文通过三种方法完成,第一种:只使用循环,第二种:使用列表,第三种:使用字典 二:FlowChart流程图 与上 ...

  7. Docker 系列四(自定义仓库).

    一.Docker hub 交互 Docker hub 是 Docker 官方维护的一个公共仓库,大部分需求都可以通过在 Docker hub 中直接下载镜像来完成.接下来,来看一下怎么与 Docker ...

  8. React之todo-list

    基于React的一个简单Todo-list 先赌为快:在线DEMO,感觉还不错点一下star  -_- ~ 源码地址: 一.已经完成的功能 1.新增选项(默认未完成) 2.完成状态可以切换 3.当前选 ...

  9. vue(二)-父子组件语法

    语法: 子组件: 给子组件弄个名字,name.props用来声明从父组件传来的数据.其他html和css部分正常写. 父组件: HTML部分:使用子组件name作为标签来显示子组件.:items=“i ...

  10. Java自动内存管理机制学习(一):Java内存区域与内存溢出异常

    备注:本文引用自<深入理解Java虚拟机第二版> 2.1 运行时数据区域 Java虚拟机在执行Java程序的过程中把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创 ...