在java中,首先我们理解基本数据类型和引用数据类型。

所谓基本数据类型,就是数据的值直接存储在内存的栈空间,不存在“引用”的概念,有8种基本数据类型,byte(1个字节),boolean(1个字节),char(2个字节,在C语言中是1个字节),short(2个字节),int(4个字节),floar(4个字节),double(8个字节),long(8个字节)。

所谓引用数据类型,就是都继承java的根父类,object类,引用对象的首地址存储在内存中栈空间,而对象的值存储在内存的堆空间。

关于“==”的理解

在8中基本数据类型中,比较的数据的值是否相等,如下图

简单明了理解java中的“==”和“equals”的区别

而在引用数据类型中,比较的是内存中首地址是否相等,由于new出来的对象在堆上开辟了两个独立的空间,地址也当然是不同的,所以返回false。

简单明了理解java中的“==”和“equals”的区别

关于“equals”的理解

在java中,equals本质上是一个返回布尔值的方法,如果一个类没有自己定义equals方法,那么它将继承Object类的equals方法,Object类的equals方法的实现代码如下:

boolean equals(Object o){

return this==o;

}

利用equals比较八大包装对象(如int,float等)和String类(因为该类已重写了equals和hashcode方法)对象时,默认比较的是值,在比较其它自定义对象时都是比较的引用地址。



相关文章:

  • 2021-10-23
  • 2021-09-01
  • 2022-01-11
  • 2021-08-25
  • 2021-08-23
猜你喜欢
  • 2022-02-16
  • 2021-06-01
  • 2022-01-30
  • 2022-12-23
  • 2021-12-30
  • 2021-04-29
相关资源
相似解决方案