###1. 赋值操作符(Assignment operator)
赋值使用操作符“=”。它的意思是“取右边额值,把它复制给左边”。右边可以是任何常数、变量或者表达式,但左边必须是一个明确的、已命名的变量。
不能把任何东西赋给一个常数,常数不能作为左值(比如不能说4=a)。
基本类型存储了实际的数值,而并非指向一个对象的引用,所以在为其赋值的时候,是直接将一个地方的内容复制到了另一个地方。
public static void main(String[] args) {
int a = 10;
int b = a;
System.out.println("a = " + a);
System.out.println("b = " + b);
a = 9;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
输出结果:
a = 10
b = 10
a = 9
b = 10
对基本数据类型使用b = a,再改变a的值,而b是不会受影响的。
对一个对象进行操作时,我们真正操作的是对对象的引用,所以倘若“将一个对象赋值给另一个对象”,实际是将“引用”从一个地方复制到另一个地方。
public class A {
int level;
}
public class Test{
public static void main(String[] args) {
A a = new A();
A b = new A();
a.level = 9;
b.level = 19;
System.out.println("1: a.level = " + a.level);
System.out.println("1: b.level = " + b.level);
b = a;
System.out.println("2: a.level = " + a.level);
System.out.println("2: b.level = " + b.level);
a.level = 27;
System.out.println("3: a.level = " + a.level);
System.out.println("3: b.level = " + b.level);
}
}
输出结果:
1: a.level = 9
1: b.level = 19
2: a.level = 9
2: b.level = 9
3: a.level = 27
3: b.level = 27
###2.算术操作符(arithmetic operator)
加号(+)、减号(-)、乘号(*)、除号(/)、取模(%)
注:整数除法会直接去掉结果的小数位,而不是四舍五入。
###3.自动递增和递减
递增操作符是“++”,意为“增加一个单位”;递减操作符是“- -”,意为“减少一个单位”。
这两个操作符各有两种使用方式,通常称为“前缀式”和“后缀式”。“前缀递增”表示“++”操作符位于变量或表达式的前面,而“后缀递增”表示“++”操作符位于变量式或表达式的后面;“前缀递减”和“后缀递减”类似。
对于前缀递增和前缀递减,会先执行计算,再生成值。而对于后缀递增和后缀递减,会先生成值,再执行计算。
###4.关系操作符(Relation operator)
关系操作符生成的是一个Boolean(布尔)结果,它们计算的是操作数的值之间的关系。如果关系是真实的,关系表达式会生成true,如果关系不真实,则生成false。
关系操作符包括小于(<)、大于(>)、小于或等于(<=)、大于或等于(>=)、等于(==)以及不等于(!=).
###5.逻辑操作符(Logical operator)
逻辑操作符:与(&&)、或(||)、非(!),根据参数的逻辑关系,生成一个布尔值(true或false)。
#####5.1短路
当使用逻辑操作符时,会遇到一种“短路”现象。即一旦能够明确无误地确定整个表达式的值,就不再计算表达式余下部分了。因此,整个逻辑表达式靠后的部分有可能不会被运算。
###6.按位操作符(Bit - by - bit operator)待补充
按位操作符用来操作整数基本数据类型中的单个“比特”(bit),即二进制位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。
###7.移位操作符
###8.三元操作符if-else
###9.字符串操作符+和+=
223

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



