java操作符共分为九种:1、赋值(=)2、算术运算符(+, -, *, /, %)3、关系操作符(< ,> ,<= , >=, ==, !=)4、逻辑操作符(&&,||,!)5、按位操作符(&,|,~,^)6、移位操作符(<<,>>,>>>)7、一元加、减操作符(-,+)8、自动递增递减运算符(++,--)9、三元操作符if-else(boolean-exp ? value0 : value1)。几乎所有的操作符都只能操作java“基本类型”,例外的操作符是=,==和!=操作符能操作所有对象,String类可以支持+,+=操作符。
1、操作符优先级
学过数学的都应没问题了,这里不再谈了
2、可以同时进行运算与赋值操作的操作符有:算术运算符(+=, -=, *=, /=, %=,)、移位操作符(<<=,>>=,>>>=)和按位操作符(&=,|=,^=)
3、整数除法中,除数与被除数可以的类型(char、byte 、short 、int 、long、 float 、double),除法结果取除数与被除数类型最大的,默认是int,如果除数与被除数的类型都是(char、byte 、short 、int 、long、 float) 类型,哪么得到的会直接去掉结果的小数位,而不是四舍五入。
4、关系运算符==和!=比较的是对象的引用,equals()的默认行为也是比较对象的引用,但大多数java类库都实现了equals()方法,使它变成比较对象的内容,而非比较对象的引用。所有如果是自己创建的新类要覆盖equals()方法,否则还是比较对象的引用。“基本类型(如int,long等)”,非包装器类型(如Integer,Long等)只能用==和!=比较,没有equals()方法。
5、逻辑操作符(&&,||,!)操作只可应用于布尔值。使用逻辑操作符时,有可能出现一种“短路”现象,即逻辑表达式有可能一部份不必计算就知运算结果的。
6、按位操作符用来操作整数基本类型中的单个“比特”(bit),即二进制位。但对于布尔型作为一种单比特值对待,只能执行按位(&,|,^)运算,不能执行按位~的操作,并且不会中途“短路”这是跟逻辑操作符不同的,结果也是布尔型数据。
7、如果对char,byte或者short类型的数值进行移位处理,哪么在移位进行之前,它们会被转换成int类型,并且得到的结果也是int类型的值。所以在进行>>>=运算是要特别小心,有可能得到的不是正确的结果。
8、java允许任何基本数据类型转换成别的基本数据类型,但布尔型除外,后者根本不允许进行任何类型的转换处理。在执行窄化转换时,总是对数字执行截尾,如果要得到四舍五入的结果,就需要使用java.lang.Math中的round()方法。
9、如果对基本数据类型执行算术运算或按位运算时,只要类型比int小(char,byte,short ),运算之前就会转成int,最终结果也是int类型。如果想把结果赋值给较小的类型,必须进行类型转换。通常,表达式中出现的最大的数据类型决定了表达式最终结果的数据类型。