摘要: 简单的来讲 HashCode 就像是一个签名,当两个对象的 Hashcode一样的时候,两个对象就可能一样,但如果Hashcode不一样,那么肯定不是同一个对象。相当于先确定一个大的范围,再用equals去比较。 hashcode可以减少equals 比较的次数,提高运算效率。(equals方法效率 阅读全文
posted @ 2022-02-24 23:31 摘星丶仙 阅读(18) 评论(0) 推荐(0) 编辑
摘要: final是一个修饰符,可以修饰变量、方法和类。如果 final修饰变量,意味着该变量的值在初始化后不能被改变。 finally是一个关键字,与try和 catch一起用于异常的处理。finally块一定会被执行,无论在 try块中是否有发生异常。 finalize方法是在对象被回收之前调用的方法, 阅读全文
posted @ 2022-02-24 19:22 摘星丶仙 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 什么条件下扩容? HashMap中最主要的数据结构是数组,一般情况下HashMap的元素是方数组上的。如果数组已经有元素,那么就发生了Hash 冲突,那么就会使用链表或红黑树的结构进行存储。 当然HashMap 中数组的默认大小是16,如果不断的插入元素,那么Hash冲突就会很频繁,所以这个时候就需 阅读全文
posted @ 2022-02-24 17:58 摘星丶仙 阅读(109) 评论(0) 推荐(0) 编辑
摘要: HashMap的数据结构 JDK1.7及之前HashMap底层是数组和链表 JDK1.8及以后HashMap底层是数组和链表以及红黑树 JDK1.8什么时候链表会转化成红黑树? HashMap在元素比较少的时候,也只会有数组+链表的结构。当链表的长度大于8,HashMap可能会做树化(链表转变成红黑 阅读全文
posted @ 2022-02-24 17:17 摘星丶仙 阅读(55) 评论(0) 推荐(0) 编辑
摘要: sleep是线程中的方法,但是wait是Object 中的方法。 sleep方法不会释放锁,但是wait会释放锁。 sleep方法不依赖于同步器synchronized,但是wait需要依赖synchronized关键字。 sleep不需要被唤醒(休眠之后推出阻塞),但是wait需要(不指定时间需要 阅读全文
posted @ 2022-02-24 14:53 摘星丶仙 阅读(18) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示