1、算术操作符:+,-,*,/,%,其中整数的除法会直接去掉结果的小数位,不会四舍五入。
2、自动递增递减:++,--,运算符放在数值前和后面是有区别的,放在前面,会先运算,
再生成值,放在后面,先取值再运算。
3、关系操作符:>,<,<=,>=,==,!=
==和!=也可以用来比较对象的引用,而不是比较对象的实际内容。可以使用equals()方法来
比较对象的内容,前提是对equals方法进行覆盖,更改为比较对象的内容,如String对象的equals方法
就是比较内容的,因为String对equals方法进行了覆盖。
4、逻辑操作符:&&(与),||(或),!(非)
逻辑操作运算符中的“短路”现象:如A&&B,当A的值确认为false时,就不会去判断B的值。A||B,当A
的值为true时,就不会判断B的值
5、按位操作符:按位与&,按位或|,按位非~,按位异或^
6、移位操作符:<<,>>
<<左移操作符,将操作符左侧的数按照右侧指定的位数向左移动,低位补0
>>右移操作符, 将操作符左侧的数按照右侧指定的位数向右移动,对于正数,高位补0,
负数高位补1
7、三元操作符:Boolean-exp ? value0,:value1
布尔表达式为真,取值value0,否则取值value1
8、字符串操作符:+,+=
能对Boolean型的数值进行的运算很少,一般是赋值操作,并判断真假,不能进行加减乘除运算。
一个表达式中最大的数据类决定了表达式最终结果,如int和long相乘结果是long类型。
大的数据类型转为小数据类型,需要强制类型转换,会导致精度丢失。
对象赋值和基本数据类型的区别
基本数据类型:只是把一个数据的内容赋值给另外一个,相互之间仍旧是独立的,修改其中一个不会影响另外一个。
例如:int a=2;
int b=3;
b=a;//把a的值赋给b,b=2
a=4;//改变a的值,不会影响b的值
对象赋值:对象赋值操作的是对象的引用,相当于取别名的操作,赋值后两个对象并不是互相独立的
例:Class A a=new A();
Class B b=new B();
a=b;
改变b的取值会影响到a的值。