java有关“==”与equal方法的使用与区别

equals方法是java.lang.Object类的方法

有两种用法说明:

一、对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。

 1、“==”比较两个变量本身的值,即两个对象在内存中的首地址。

(java中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个参数,而通过这个首地址就可以找到该对象,进而可以找到该对象的各个属性)

 2、“equals()”比较字符串中所包含的内容是否相同。

小细节:

1.

串常量所生成的变量,其中所存放的内存地址是相等的。

2.

对于非字符串变量来说,"=="和"equals"方法的作用是相同的都是用来比较其,对象在堆内存的首地址,即用来比较两个引用变量是否指向同一个对象。

3.

String类中重新定义了equals这个方法,而且比较的是值,而不是地址。

4.

 如果是基本类型比较,那么只能用==来比较,不能用equals。

5.

对于基本类型的包装类型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,==是比较地址的,而equals是比较内容的。

 

上一篇:CF1416B Make Them Equal


下一篇:java基础 笔记4 面向对象 包、继承,final,super,toString(),equal