在最底层,Java中的数据是通过使用操作符来操作的。

操作符
几乎所有的操作符都只能操作“基本类型” (= 、==、 !=、这些操作符能操作所有的对象)
String类支持“+”和“+=”

优先级
先加减后乘除,有括号先算括号
String后面+非string类型元素时会试着将其转为string类型

赋值
左值 = 右值 将右值复制给左值,右边可以是任何常数,变量或者表达式,但是左边必须是一个明确的、已经命名的变量。

基本类型赋值:
a=b ,b的内容复制给a,要是修改了a,b不会受到影响

对象“赋值”:c=d ,c和d都指向原本只有d指向的那个对象。也就是说,将一个对象赋值给另一个对象,实际上是将引用从一个地方复制到另一个地方

关系操作符
关系操作符(=、<、>、==、等)生成的是一个布尔类型的结果(true或false),

对象的等价性

image.png
尽管两个integer的内容相同,然而对象的引用下却是不同的,所以==和!=比较的是对象的引用
基本类型直接用==或!=来比较
对于非基本类型,需要用到equals()方法
image.png
这里结果还是false,这是因为equals默认比较的是引用。所以除非在自己的新类中覆盖equals方法,否则不会出现我们希望的结果。

逻辑运算符

与(&&)、或(||)、非(!)
与或非操作只可以应用于布尔值,不可以将一个非布尔值当作布尔值在逻辑表达式中使用

  1. print((i && j));
  1. print((i<10)&&(j<10));