
java 底层
文章平均质量分 84
用心去追梦
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HashMap、Hashtable、ConcurrentHashMap的原理与区别
HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化初始size为11,扩容:newsize = olesize2+1计算index的方法:index = (hash & 0x7FFFFFFF) % tab.lengthHashMap底层数组+链表实现,可以存储null键和null值,线程不安全初始size为16,扩容:newsize =原创 2021-08-08 22:29:10 · 146 阅读 · 0 评论 -
JVM内存模型知识点总结
堆堆是Java虚拟机所管理的内存最大一块。堆是所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域唯一的目的就是存放对象实例。所有的对象实例都在这里分配内存Java堆是垃圾收集器管理的主要区域。从内存回收的角度来看,由于现在的垃圾收集器采用的是分代收集算法。所以,java堆又分为新生代和老年代。从内存分配的角度来说,线程共享的java对中可能划分出多个线程私有的fenp缓冲区(Thread Local Allocation Buffer)。可以通过 -Xms、-Xmx分别控制堆初始化是最小堆内.原创 2021-07-02 22:34:27 · 138 阅读 · 1 评论 -
JVM的内存模型
JVM内存模型JVM内存模型可以分为两个部分,如下图所示,堆和方法区是所有线程共有的,而虚拟机栈,本地方法栈和程序计数器则是线程私有的。堆(Heap)堆内存是所有线程共有的,可以分为两个部分:年轻代和老年代。下图中的Perm代表的是永久代,但是注意永久代并不属于堆内存中的一部分,同时jdk1.8之后永久代也将被移除。堆是java虚拟机所管理的内存中最大的一块内存区域,也是被各个线程共享的内存区域,该内存区域存放了对象实例及数组(但不是所有的对象实例都在堆中)。其大小通过-Xms(最小值)和-原创 2021-07-02 22:28:48 · 129 阅读 · 0 评论 -
HashMap底层实现原理详解
HashMap底层实现原理详解这篇文章对于学习这个知识点有较好的参考作用,需要了解这方面技术的可以斟酌学习一下。文章目录一、快速入门1.HashMap的常用方法2.HashMap的几个重要知识点二、JDK7与JDK8的HashMap区别三、HashMap的容量与扩容机制1.HashMap的默认负载因子2.HashMap的扩容机制3.HashMap中散列表数组初始长度四、HashMap的结构五、HashMap存储原理与存储流程1.HashMap存储原理2.HashMap存储流程六、转载 2021-07-02 22:22:33 · 187 阅读 · 0 评论