== 比较值是否相等?
-
比较内存栈中的内容是否相等;如果是两个基本数据类型,那么比较的是他们值是否相等;如果是两个引用数据类型,则比较启引用地址是否相等。
1、两个引用数据类型的比较:比较的是引用地址是否相同。
2、String对象 ,如果直接赋值: String s1 = " abc";那么abc是存放在常量池中的。
3、String的+运算。如果是两个常量相加: String s2=“ab”+“c”;s1==s2–>false ;两个常量相加, 是在程序编译的时候进行的计算。 -
变量的计算;是在内存堆中创建了一个新的对象。
equals
- 定义在object类中。在object类中比较两个对象是否相等(和==的结果是一样的)。但是equals方法,一般会在具体的对象中重写,用于判断两个对象中的内容是否相等(判断的是对象在内村队中的内容是否相等)。