Java基础
GoodLSS
左牵黄,右擎苍,锦帽貂裘,千骑卷平冈
展开
-
HashCode与equals不得不说的那些事
我们经常可以看到这个问题,为什么重写equals方法时,也必须重写HashCode()方法呢?我们来一探究竟!当有一个疑问的时候,我们不仅需要解开疑惑,更需要了解为什么会有这个问题?它从哪里来?要去哪里?为什么?这样都搞明白,这个问题不仅解决了,而且留下了很深刻的印象。先聊一聊HashCode是干嘛的?equals又是干嘛的?两者有什么关系导致一方重写另一方也需要重写呢?为什么要有HashCode:这里以HashSet如何检查重复来描述HashCode:把对象加入HashSet时,HashSet原创 2020-05-27 23:10:04 · 163 阅读 · 0 评论 -
几句话,让你完全理解==与equals的区别!
==与equals的区别== 的作用是判断两个对象的地址是否相等,即判断两个对象是否为同一个对象(基本数据类型比较的时值,引用数据类型比较的是地址)equals定义在Object.java中,所以所有Java类都包含了equals方法。作用也是判断两个对象是否相等,但是分一下两种情况:类没有重写equals方法,效果与==相同类重写了equals方法,一般我们覆盖后都用来比较两者的值注意:String类中重写equals方法,因此比较的是对象的值,未重写时比较的是对象的地址。原创 2020-05-27 22:43:59 · 317 阅读 · 0 评论 -
还在纠结自动装箱与拆箱?看完你就懂了
Java的自动拆箱与装箱本文不阐述什么是包装类,直接上干货!将基本类型用它们对应的引用类型包装起来: Integer i = 10;将包装类型转换为基本数据类型:int n = i;原理:这里用int和Integer来举例说明,装箱时调用了Ingeter的ValueOf(int)方法,拆箱时调用了intValue方法常见面试问题:下面代码的运行结果:这里就不和大家卖关子了,分别输出的结果为true与flase;细心的小伙伴可能已经发现,在ValueOf(int)方法中做了一个if判原创 2020-05-27 22:28:22 · 202 阅读 · 0 评论 -
还不知道StringBuffer和StringBuild的区别?别找了看完这个就清楚了!
StringBuffer和StringBuilder的区别?在回答这个问题之前,我们需要先知道为什么String是不可变的?其实非常简单,看一下String的源码我们就清楚了不难发现,String类中使用了final关键字修饰字符数组来保存字符,所以不可变。在探讨StringBuffer和StringBuilder的区别之前,我们先来看看两者有什么相同的地方:这里建议大家看完文章后,也打开IDE阅读下相关的源码,点进去看一看,这样印象会很深。两者共性:他们都继承了AbstractStri原创 2020-05-27 21:55:41 · 281 阅读 · 0 评论