武汉北大青鸟教员为大家介绍基本的java运算符。Java的大多数运算符在形式上和功能上都与C和C++的运算符非常类似,熟悉C和C++的读者对此不会感到陌生。
1.算术运算符
算术运算符包括通常的加(+)、减(一)、乘(*)、除(/)、取模(%),完成整型或浮点型数据的算术运算。许多语言中的取模运算只能用于整型数,Java对此有所扩展,它允许对浮点数进行取模操作。此外,算术运算符还有“++”、“一一”两种,分别表示加1和减1操作。与C++类似,“++i”和“i++”的执行顺序稍有不同,前者在i使用之前加1,后者先使用再加1。“--i”与“i--”的情况与此类似。
2.关系运算符
关系运算符用来比较两个值,包括大于(>)、大于等于(>=)、小于(<)、小于等于 (<=)、等于(==)、不等于(!=::)6种。关系运算符都是二元运算符,运算的结果是一个逻辑值。
Java允许=一和!一两种运算用于任何数据类型。例如,可以判定两个实例是否相等。
3.逻辑运算符
逻辑运算符包撬逻辑与(&&)、逻辑或(||)和逻辑非(!)。前两个是二元运算符,后一个是一元运算符。
Java对逻辑与和逻辑或提供短路操作功能。进行运算时,先计算运算符左侧表达式的值,如果使用该值能得到整个表达式的值,则跳过运算符右侧表达式的计算,否则计算运算符右侧表达式,并得到整个表达式的值。
例3-3
String unset = null
if((unset != null) && (unset.1ength() > 5))(
//对unset进行某种操作
}
空串unset不能使用,因此不能访问unset.1ength(),但该if()语句中的逻辑表达式是合法的·且完全安全。这是因为第一个子表达式(unset!=nulI)结果为假,它马上导致整个表达式的结果为假。所以&%运算符跳过不必要的(unset.1ength()>5)计算,因为没有计算它,避免了空指针异常。
4.位运算符
位运算符用来对二进制位进行操作,包括按位取反(~)、按位与(&)、按位或(I)、异或(‘)、右移(》)、左移(《)及无符号右移(>》)。位运算符只能对整型和字符型数据进行操作。
Java提供两种右移运算符。
熟悉的运算符“>>”执行算术右移,它使用最高位填充左侧的空位。右移的结果为:每移一位,第一个操作数被2除一次,移动的次数由第二个操作数确定。
算术右移不改变原数的符号,而逻辑右移不能保证这一点。
移位运算符约简其右侧的操作数,当左侧操作数是int类型时,右侧以32取模;当左侧是long类型时,右侧以64取模。所以,执行
int x;
x>≥>32;后,x的结果不改变,而不是通常期望的0。这样可以保证不会将左侧操作数完全移走。
免责声明:本文仅代表作者个人观点,与北大青鸟武广校区无关。其原创性及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。若有版权问题请在30个工作日内联系我们,我们自行删除。