Java运算符
前言:Java语言中的运算符(也称操作符)在风格和功能上都与C 和C++极为相似。本文献为大家介绍Java语言中一些主要的运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符和其他运算符
1 算术运算符
Java中的算术运算符主要用来组织数值类型数据的算术运算,按照参加运算的操作数的不同可以分为 一元运算符和二元运算符。
.1.1 一元运算符
算术一元运算符一共有3个,分别是-、++和–。如下图

-a是对a取反运算,a++或a–是在表达式运算完后,再给a加一或减一。而++a或–a是先给a加一或减一,然后再进行表达式运算
例:
输出以下结果
第①行是-a,是把a变量取反,结果输出是-12。第②行代码是先把a赋值给b变量再加一,即先
赋值后++,因此输出结果是12。第③行代码是把a加一,然后把a赋值给b变量,即先++后赋值,因此
输出结果是14。
2 ,算术赋值运算符
算术赋值运算符只是一种简写,一般用于变量自身的变化.如下图
例

3,关系运算符
关系运算是比较两个表达式大小关系的运算,它的结果是布尔类型数据,即true或false。关系运算符有 6种:==、!=、>、<、>=和<=,如下图
==和!=可以应用于基本数据类型和引用数据类型。当用于引用数据类型比较时,比较的是
两个引用是否指向同一个对象,但在实际开发过程中多数情况下,只是比较对象的内容是否相当,不需要比较是否为同一个对象。
关系运算符在表格已详细讲解,具体语句不再赘述
4逻辑运算符
逻辑运算符是对布尔型变量进行运算,其结果也是布尔型.详解如图
短路与(&&)和短路或(||)能够采用最优化的计算方式,从而提高效率。在实际编程
时,应该优先考虑使用短路与和短路或
例:
以上结果:
其中,第①行代码进行短路计算,由于(a > b)是true,后面的表达式(i == 1)不再计算,输出的结果为真。类似地,第②行代码也进行短路计算,由于(a < b)是false,后面的表达式(i == 1)不再计算,输出的结果为假。
代码第③行中在条件表达中掺杂了++和—运算,由于(a > b)是true,后面的表达式(a++ == --b)不再计算,所以最后是a = 10, b = 9。如果把短路或(||)改为逻辑或(|),那么输出的结果就是a = 11, b = 8了。
5,位运算符
位运算是以二进位(bit)为单位进行运算的,操作数和结果都是整型数据。位运算符有如下几个运算符:&、|、^、~、>>、<<和>>>,以及相应的赋值运算符,详解如下表
注意 无符号右移>>>运算符仅被允许用在int和long整数类型, 如果用于short或byte数据, 则数据在位移之前,转换为int类型后再进行位移计算。
例

上述代码第①行和第②行分别定义了byte变量a和b,为了便于查看代码采用二进制整数表示。
代码第③行中表达式(a | b)进行位或运算,结果是二进制的0B01111110。a和b按位进行或计算,只要有一个为1,这一位就为1,否则为0。
代码第④行(a & b)是进行位与运算,结果是二进制的0B00010010。a和b按位进行与计算,只有两位全部为1,这一位才为1,否则为0。
代码第⑤行(a ^ b)是进行位异或运算,结果是二进制的0B01101100。a和b按位进行异或计算,只有两位相反时这一位才为1,否则为0。
代码第⑦行(a >> 2)是进行有符号右位移2位运算,结果是二进制的0B00001100。a的低位被移除掉,由于是正数符号位是0,高位空位用0补。类似代码第⑧行(a >> 1)是进行右位移1位运算,结果是二进制的0B00011001。
代码第⑨行(a >>> 2)是进行无符号右位移2位运算,与代码第⑦行不同的是,无论是否有数符号位,高位空位用0补,所以在正数情况下>>和>>>运算结果是一样的。
代码第⑩行(a << 2)是进行左位移2位运算,结果是二进制的0B11001000。a的高位被移除掉,低位用0补位。类似代码第⑪行(a << 1)是进行左位移1位运算,结果是二进制的0B01100100。
代码第⑫声明int类型负数。右位移(>>>和>>)在负数情况下差别比较大。代码第⑬行的(c >>> 2)表达式输出结果是1073741821,这是一个如此大的正数,从一个负数变成一个正数,这说明无符号右位移对于负数计算会导致精度的丢失。而有符号右位移对于负数的计算是正确的,见代码第⑭行。
7,运算符优先级
在一个表达式计算过程中,运算符的优先级非常重要。下图中从上到小,运算符的优先级从高到低,同一行具有相同的优先级。二元运算符计算顺序从左向右,但是先级15的赋值运算符的计算顺序从右向左的。 
总结 运算符优先级大体顺序,从高到低是:算术运算符→位运算符→关系运算符→逻辑运算符→赋值运算符
Java运算符详解:算数、关系、逻辑与位操作
本文深入解析Java中的运算符,涵盖算术运算符(如+、-、*)、关系运算符(==、!=等)、逻辑运算符(&&、||)、以及位运算符(&、|、^等),通过实例演示各类运算符的使用和优先级规则,助您理解Java表达式的计算过程。
896

被折叠的 条评论
为什么被折叠?



