- 博客(6)
- 收藏
- 关注
转载 Java8的HashMap详解(存储结构,功能实现,扩容优化,线程安全,遍历方法)
文章转自:https://blog.csdn.net/login_sonata/article/details/76598675JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理,文章末尾附有HashMap的put方法和resize方法的源码解析。简介Java为数...
2019-01-13 18:17:45 362
转载 Java中内存泄漏
以下内容转载自:http://blog.csdn.net/anxpp/article/details/51325838 Java的一个重要特性就是通过垃圾收集器(GC)自动管理内存的回收,而不需要程序员自己来释放内存。理论上Java中所有不会再被利用的对象所占用的内存,都可以被GC回收,但是Java也存在内存泄露,但它的表现与C++不同。JAVA 中的内存管理 要了解Java中...
2019-01-13 16:33:59 126
转载 GC-谈谈“生死”
技术点:1、jvm运行时数据区组成结构:方法区、虚拟机栈、本地方法栈、堆和程序计数器。下面是我从百度找的图片:对于每一个模块的作用,笔者就不再展开了,如果需要的话,我会在后面可以专门挑一天写一个博文,专门介绍每个部分的作用和运行状态。话虽如此,知识本来就是比较发散的东西,我就说几点我面试过程中遇到最多问题:①对象实例存在哪?存在堆中。②对象引用存在哪啊?存在虚拟机栈(注意:我们平时...
2019-01-13 16:12:11 130
原创 fail-fast(快速失败)机制和fail-safe(安全失败)机制的介绍和区别
fail-fast和fail-safe的区别: fail-safe允许在遍历的过程中对容器中的数据进行修改,而fail-fast则不允许。fail-fast ( 快速失败 )fail-fast:直接在容器上进行遍历,在遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出ConcurrentModificationException异常导致遍历失败。java.util包下的集合类都是快速...
2019-01-13 14:59:18 11791 7
转载 Java集合类之HashMap原理小结
1. 认识HashMapHashMap是用来存储key-value键值对的数据结构。当我们创建HashMap的时候,如果不指定任何参数,它会为我们创建一个初始容量为16,负载因子为0.75的HashMap (load factor,记录数/数组长度)。当loadFactor达到0.75或指定值的时候,HashMap的总容量自动扩展一倍。它的底层采用Entry数组来保存所有的key-val...
2019-01-12 18:26:02 139
转载 Java HashMap的死循环
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出现问题。但是,我发现近几年,很多人都经历过这个事(在网上查“HashMap Infinite Loo...
2019-01-12 18:03:48 121
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人