Java源码分析
用月光取暖
热爱开发,终身学习
展开
-
为什么重写equals则一定需要重写hashcode
主要是为了避免Map,Set内出现重复的元素。 equals是判断两个对象是否相等的判断依据。而hashcode在map中是用来查找对应的对象在数组的下标的。如果equals被重写了而hashcode没有被重写,那么意味着2个equals相同(实际也就是相同)的对象,他们有着不同的数组下标,那么一个map里就有可能出现2个相同的key了,这明显是不合规矩的 重写equals应满足...原创 2019-10-11 22:17:29 · 79 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的比较
共同点: 1 都是字符串相关,底层的实现都是char数组 2 类都是final的,意味着不可以被继承 区别: String的value数组是private final的,这意味者他的值是不可以被修改的。而StringBuffer StringBuilder都是继承AbstractStringBuilder的,他们的value数组都可以通过数组进行修改。在修改之前会检测数组的大小是否能容纳下...原创 2019-09-21 20:42:52 · 86 阅读 · 0 评论