操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不同,但效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)、以及赋职号(=)与其他编程语言类似。
操作符用于操作数,生成一个新值。另外有些操作符可能会改变操作数自身的值,这被称为“副作用”。那些能改变其操作数的操作符,最普遍的用途就是用来产生副作用。
几乎所有的操作符都只能操作“基本类型”。例外的操作符是“=”、“==”、和“!=”,这些操作符能操作所有的对象。除此以外,String类支持“+”和“+=”。
优先级
当一个表达式中存在多个操作符时,操作符的优先级就就决定了各部分的计算顺序。java操作符最基本的规则就是先乘除后加减,分不清优先级时用括号明确规定计算顺序。
赋值
赋值使用操作符“=”。他的意思是取右边的值把他复制给左边。
右值可以是任何常数、变量或者表达式。但左值必须是已命名的变量。
对基本数据类型的赋值实际上是将右值的内容复制给左值(值传递),对一方的值做出修改不会影响另一方。
对对象进行赋值时是将右值的引用复制给左值(引用传递),对一方做出修改会影响另一方。
算数操作符
在对算数操作符的使用中要注意:整数除法会直接去掉结果的小数位而不是四舍五入。
关系操作符
关系操作符生成的是一个boolean结果,他们计算的是操作数的值之间的关系。如果关系是真实的,关系表达试会生成true;如果关系不真实,则生成false。
==和!=比较的是对象的引用,如果要比较两个对象的值是否相同应该使用equals()。需要注意的是equals()方法默认行为是比较引用。
按位操作符
按位“与”(&):如果两个输入为都为1则生成1,否则生成0。
按位“或”(|):如果两个输入位都为0则生成0,否则生成1。
按位“非”(~):生成与输入位相反的值。
按位“异或”(^):
参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。
如果对基本数据类型执行算数运算或按位运算,只要类型比int小(char、byte、short),那么运算之前这些值会自动转换为int。