从零开始学Java 第5章 运算符

第5章  运算符
前一章讲了Java的数据类型,通过对这些数据进行有效的计算来完成程序,如何准确高效的进行运算,就需要了解Java的运算符。Java提供了相当丰富的运算符系统,主要分为以下四类:算术运算符、位运算符、关系运算符、逻辑运算符。这些运算符之间有优先级的关系,通过括号的组合而成的表达式可以完成复杂的计算。
5.1  算术运算符
算术运算符一般在数学表达式中使用,使用方法和代数中的使用方法相同,表5.1列出了各种算术运算符。
5.1.1  基本算术运算符
基本算术运算符包括加、减、乘、除,可以对所有数字类型进行操作。注意一点,如果整数进行除法运算,得到的结果也是整数,小数部分会被抛弃掉。
5.1.2  模运算符
模运算符“%”是求两个整数相除的余数,它可以应用于整数类型。如果在浮点类型上使用该运算,编译器并不会报错,但是产生的结果是不准确的,这根底层的数据表示有关,在此不再详述。
5.1.3  算术赋值运算符
在程序编写中,经常使用到对该变量加上一个值,例如让int型变量i加5,用程序语言表达就是:
i=i+5;
在Java中有一种简单的表达方式,如下所示:
i+=5;
该语句是用运算符+=将加法运算和赋值运算合为一步完成,因此这里把该运算符称为算术赋值运算符。同理还可以有以下运算符的使用:
i-=5;
i/=5;
i%=5
i*=5;
它们分别相当于:
i=i-5;
i=i/5;
i=i%5;
i=i*5;

5.1.4  自增自减运算符
在程序中对数字变量最常用的操作是加1或者减1,在Java中有专门的操作符来表示这个运算,++和--运算符。下面三条语句的效果是相同的:
i=i+1;
i+=1;
i++;
同样对于自减运算符也是如此。
自加自减运算符可以用作前缀也可以用作后缀,这两种情况下所起的作用是不同的。前缀表达式中,编译器会首先对该操作数进行加1或减1,然后将其用于表达式中。后缀表达式中,会先将操作数的值进行计算,然后对操作数进行加1或减1。
5.2  位运算符
位运算符用来对二进制位进行操作,Java中定义的为运算符适用于整数类型(long、int、short、char、byte),主要的位运算符如表5.2所示:
 5.2.1  按位取反运算
在计算机中所有的整数类型都用二进制数来表示。例如11的二进制表达式就是00001011,其中每个位置都表示2的幂,右边第一位表示20,第二位表示21,以此类推。所以11的二进制表示就是20 +21 +23=11。
Java中整数类型都是有符号类型,可以表示正数,也可以表示负数。在Java中负数的是用补码来表示的。
5.2.2  位逻辑运算符
位运算符有&、|、^、~。如表5.3表示了位逻辑运算符的运算结果。
5.2.3  位移运算
位移运算是数据在二进制位上的操作。一共有三种形式的位移操作,分别是左移运算、右移运算以及无符号位移。下面依次讲解这三种形式的位移操作。
1.左移运算(<<)
2.右移运算(>>)
3.无符号右移(>>>)

5.3  关系运算符
关系运算符用来比较两个数,确定两个操作数之间的关系。关系运算的返回值是一个boolean类型,仅有true和false两种情况。关系运算符一般用在if语句和循环语句的判断中。
在Java中,任何类型包括整型、浮点型、字符型和布尔型都可以进行关系运算。在Java中用“==”运算符比较两个数是否相等,用运算符“!=”测试两个数是否不等。
5.4  逻辑运算符
在Java中提供一些简单的运算符,可以把简单的条件合并在一起,从而构成复杂的条件。这些符号包括“&&”(短路与运算)、“||”(短路或运算)以及“!”(非运算)。通过这些运算得到的值是boolean类型(true或false)。如表5.5是所有的逻辑运算符的列表:
5.5  三元运算符
Java中有一个特殊的三元运算符,它支持条件表达式,当需要进行条件判断是可用它来替代if-else语句。它的语法稍微一点麻烦,但是它能非常高效的完成功能,让代码看起来简洁,优雅。它的一般形式是:
expression? statement : statement2
其中,expression是一个可以计算出boolean值得表达式。如果expression的值为真,则执行statement1的语句,否则执行statement2的语句。
5.6  运算符优先级
在一个表达式中可能含有多个运算符,它们之间是有优先级关系的,这样才能有效的把它们组织到一起进行复杂的运算,如表5.6是Java中运算符的优先级。
5.7  小结
前一章已经介绍过Java中的各种数据类型,在这一章中,主要学习了各种表达式的使用。在实际运用中这些表达式是十分有用的。通过表达式将各种数据合理有效的结合在一起,是程序高效、简洁的秘诀所在。希望读者认真阅读这两章,为以后的学习打下良好的基础。

原文地址:https://www.cnblogs.com/yoogoo/p/2467256.html