1.赋值操作符(=)
左值=右值;//取右边的值赋给左边的值
右值可以是任意常数、变量或者表达式(只要它能生成一个值就行)
左值必须是一个明确的已命名的变量,也就是说必须有一个物理空间可以存储左边的值。常数是不可以做左值的。
Key:基本类型赋值:是直接将一个地方的内容复制到了另一个地方
int a=2;
int b=a;
b=3;
System.out.println(a);
System.out.println(b);
output:2
3
引用类型赋值:是将引用从一个地方复制到了另一个地方
Dog dog1 = new Dog();
dog1.weight = 2;
Dog dog2 = dog1;
System.out.println(dog1.weight);
System.out.println(dog2.weight);
dog2.weight = 3;
System.out.println(dog1.weight);
System.out.println(dog2.weight);
Dog是定义的一个类,weight是其一个成员变量。
output:2
2
3
3
2.算术操作符
算术操作符:+、-、*、/、%(求模)
Key: Java支持C和C++的简化符号同时进行运算与赋值操作。运用操作符后紧跟一个=表示,这对于Java中所有的操作符都适用,只要其具有实际意义就行。
整数做除法结果会自动取整
int c=14;
int d=3;
System.out.println(c/d);
output:4
一元+、-号:表示正负数
3.比较操作符
比较操作符:<,<=,>,>=,==,!=
比较操作符的结果是产生一个boolean的值,即true或者false
Key:==和!=比较的是两个引用是否相等,即是否引用了同一个对象
Dog dog1 = new Dog();
Dog dog2 = new Dog();
System.out.println(dog1 == dog2);
dog2 = dog1;
System.out.println(dog1 == dog2);
output:false
true
如果想要两个对象的实际内容是否相同,则需要用到equals()方法,不适用于基本类型,默认比较的是引用。
4.逻辑操作符
逻辑操作符:&&(与)、||(或),!(非)
逻辑操作符的操作数是boolean的值,不是则出错。
Key:短路:即一旦能够明确无误地确定某个表达式的值,就不在计算表达式余下部分了,因此,整个逻辑表达式靠后的部分可能不会被运算。
boolean test1() {
System.out.println("test1 true");
return true;
}
boolean test2() {
System.out.println("test2 false");
return false;
}
boolean test3() {
System.out.println("test3 true");
return true;
}
boolean result=test1()&&test2()&&test3();
output:test1 true
test2 false
可以看到由于test()和test2已经可以确定表达式结果为false,所以test3()没有被执行。
5.三元操作符
Boolean-statement ?value1:value2;
如果 Boolean-statement为真,则计算value1的值,否则计算value2的值,就相当于if-else语句。建议使用一些简单的语句,不要重复的嵌套,否则令人很难理解。