Java核心技术卷I基础知识3.5.8 括号与运算符级别

3.5.8 括号与运算符级别

表3-4给出了运算符的优先级。如果不使用圆括号,就按照给出的运算符优先级次序进行计算。同一个级别的运算符按照从左到右的次序进行计算(除了表中给出的右结合运算符外。)例如,由于&&的优先级比||的优先级高,所以表达式

 

等价于

 

又因为+=是右结合运算符,所以表达式

 

等价于

 

也就是将b += c的结果(加上c之后的b)加到a上。

      C++注释:与C或C++不同,Java不使用逗号运算符。不过,可以在for语句的第1和第3部分中使用逗号分隔表达式列表。

表3-4 运算符优先级

运 算 符  结合性

[ ] . ( ) (方法调用)   从左向右

! ~ ++ -- + (一元运算) - (一元运算) ( ) (强制类型转换) new  从右向左

*/ %    从左向右

+ - 从左向右

<<  >> 
>>> 从左向右

<  <= 
>  >=  instanceof 从左向右

= =  !=     从左向右

&    从左向右

^   从左向右

|    从左向右

&&       从左向右

||   从左向右

?:   从右向左

=  +=  – = 
*=  /=  %= 
&=  |=  ^= 
<<=  >>=  >>>= 从右向左

时间: 2025-01-01 18:13:16

Java核心技术卷I基础知识3.5.8 括号与运算符级别的相关文章

Java核心技术卷I基础知识3.5.7 位运算符

3.5.7 位运算符 处理整型类型时,可以直接对组成整型数值的各个位完成操作.这意味着可以使用掩码技术得到整数中的各个位.位运算符包括:   这些运算符按位模式处理.例如,如果n是一个整数变量,而且用二进制表示的n从右边数第4位为1,则   会返回1,否则返回0.利用&并结合使用适当的2的幂,可以把其他位掩掉,而只保留其中的某一位.       注释:应用在布尔值上时,&和|运算符也会得到一个布尔值.这些运算符与&&和||运算符很类似,不过&和|运算符不采用&quo

Java核心技术卷I基础知识3.1 一个简单的Java应用程序

第3章 Java的基本程序设计结构 ▲  一个简单的Java应用程序     ▲  字符串 ▲  注释                      ▲  输入输出 ▲  数据类型               ▲  控制流 ▲  变量                      ▲  大数值 ▲  运算符                  ▲  数组   现在,假定已经成功地安装了JDK,并且能够运行第2章中给出的示例程序.我们从现在开始将介绍Java应用程序设计.本章主要介绍程序设计的基本概念(如数

Java核心技术卷I基础知识3.9 大数值

3.9 大数值 如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal.这两个类可以处理包含任意长度数字序列的数值.BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算. 使用静态的valueOf方法可以将普通的数值转换为大数值:   遗憾的是,不能使用人们熟悉的算术运算符(如:+和*)处理大数值.而需要使用大数值类中的add和multiply方法.         C++

Java核心技术卷I基础知识1.5 关于Java的常见误解

1.5 关于Java的常见误解 在结束本章之前,我们列出了一些关于Java的常见误解,同时给出了解释. 1.?Java是HTML的扩展 Java是一种程序设计语言:HTML是一种描述网页结构的方式.除了用于在网页上放置Java applet的HTML扩展之外,两者没有任何共同之处. 2.?使用XML,所以不需要Java Java是一种程序设计语言:XML是一种描述数据的方式.可以使用任何一种程序设计语言处理XML数据,而Java API对XML处理提供了很好的支持.此外,许多重要的第三方XML工

Java核心技术卷I基础知识1.2.1 简单性

1.2.1 简单性 人们希望构建一个无须深奥的专业训练就可以进行编程的系统,并且要符合当今的标准惯例.因此,尽管人们发现C++不太适用,但在设计Java的时候还是尽可能地接近C++,以便系统更易于理解.Java剔除了C++中许多很少使用.难以理解.易混淆的特性.在目前看来,这些特性带来的麻烦远远多于其带来的好处. 的确,Java语法是C++语法的一个"纯净"版本.这里没有头文件.指针运算(甚至指针语法).结构.联合.操作符重载.虚基类等(请参阅本书各个章节给出的C++注释,其中比较详细

Java核心技术卷I基础知识3.7.2 格式化输出

3.7.2 格式化输出 可以使用System.out.print(x)将数值x输出到控制台上.这条命令将以x对应的数据类型所允许的最大非0数字位数打印输出x.例如:   打印   如果希望显示美元.美分等符号,则有可能会出现问题. 在早期的Java版本中,格式化数值曾引起过一些争议.庆幸的是,Java SE 5.0沿用了C语言库函数中的printf方法.例如,调用   可以用8个字符的宽度和小数点后两个字符的精度打印x.也就是说,打印输出一个空格和7个字符,如下所示:   在printf中,可以

Java核心技术卷I基础知识3.7.3 文件输入与输出

3.7.3 文件输入与输出 要想对文件进行读取,就需要一个用File对象构造一个Scanner对象,如下所示:   如果文件名中包含反斜杠符号,就要记住在每个反斜杠之前再加一个额外的反斜杠: "c:\\mydirectory\\myf?ile.txt".       注释:在这里指定了UTF-8字符编码,这对于互联网上的文件很常见(不过并不是普遍适用).读取一个文本文件时,要知道它的字符编码--更多信息参见卷Ⅱ第2章.如果省略字符编码,则会使用运行这个Java程序的机器的"默

Java核心技术卷I基础知识3.8.5 多重选择:switch语句

3.8.5 多重选择:switch语句 在处理多个选项时,使用if/else结构显得有些笨拙.Java有一个与C/C++完全一样的switch语句. 例如,如果建立一个如图3-13所示的包含4个选项的菜单系统,可以使用下列代码:   switch语句将从与选项值相匹配的case标签处开始执行直到遇到break语句,或者执行到switch语句的结束处为止.如果没有相匹配的case标签,而有default子句,就执行这个子句.       警告:有可能触发多个case分支.如果在case分支语句的末

Java核心技术卷I基础知识3.6.6 码点与代码单元

3.6.6 码点与代码单元 Java字符串由char值序列组成.从3.3.3节"char类型"已经看到,char数据类型是一个采用UTF-16编码表示Unicode码点的代码单元.大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示. length方法将返回采用UTF-16编码表示的给定字符串所需要的代码单元数量.例如:   要想得到实际的长度,即码点数量,可以调用:   调用s.charAt(n)将返回位置n的代码单元,n介于0-s.length(