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