自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 为什么重写equals()?又为什么必须重写hashCode()

重写equals方法依然无法改变==的底层逻辑,即在比较引用数据类型的时候会比较两者的地址。而为了使两个属性相同的不同对象的==返回值为true,我们必须使两者的地址相同。这样就实现了相同属性的不同对象地址相同的目的。这是当Set底层调用equals方法判断后发现,这几个对象的属性是完全一致的,于是不允许重复添加到Set中。通过Object.equals方法的源代码我们可以发现,Object.equals 的底层逻辑就是==,而==在对引用数据类型做判断时是通过比较两个对象的地址实现的。

2022-10-25 15:25:55 128 1

原创 通过简单的静态对象理解System.out.println()原理

此处df是声明在方法体外类以内的静态变量,只不过是通过创建对象声明的变量。通过静态变量的访问方法,类名.变量名 以a.df的方式访问到了df这个静态变量。又因为df是b这个引用类型的变量,并且创建了对象,因此可以访问b中的方法exam(),就是引用.方法名的形式访问b类中的方法。同理创建一个实例变量如下。通过引用.的形式访问到了实例变量df,再通过引用.的形式访问到了类b里的方法。借此可以理解System.out.println()方法为什么存在两处.

2022-10-18 10:18:01 145

原创 String类型的大小比较(四种情况)

在实际的字符串比较当中会遇到多种情况结果:}两个简单常量的比较,自然是相等。(a是存储在方法区的常量)返回值为}返回值自然也是false。两个例子中,用==比较的两个值显然是相等的,但由于存储的地址不相同,因此由==返回的值是false。面对第3条当中的情况,我们可以通过java源文件中的str.equals()方法来判断相等。

2022-10-15 23:21:28 17205 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除