java 包装类 equals_java的equals与==,包装类

一、equals和 ==

equals是对象的比较方法,因此我们在这里讨论的对象才有意义。

两者区别

==: 是比较变量是否相同,其中包括基本数据类型的值和引用型变量(Object),前者比较值是否相等,后者比较地址是否一致。

equals:只比较对象按某种规则下某方面是否相等,比较规则具体根据重写的euqals方法分析。

(Java提供的所有类中,绝大多数类都重写了equals()方法,重写后的equals()方法一般都是比较两个对象的值,比如String类,Date类,基本数据类型的包装类等。)

String对象创建方式:java中存在常量池,存放了开辟字符串的公共内存,无论用什么方式创建字符串,都会先到常量池,可以理解为一种内部字符串常量表,记录着已有名值对,如果已存在想要用的字符串,则直接返回字符串对象,否则在常量池里新创建完后再返回。

1、字面值方式

44bd41f2d3b6f647481b573e9ca40b20.png//s1 == s2  true

本质上是隐式调用了String s1 = String.valueOf("abc")初始化对象,指向相同,地址相同

你可能感兴趣的:(java,包装类,equals)