
JVM
文章平均质量分 89
NCS123456
这个作者很懒,什么都没留下…
展开
-
java实例内存分配
java实例内存分配原创 2022-12-09 16:50:55 · 314 阅读 · 0 评论 -
java对象的内存布局
用于存储对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志、线程持久的锁、偏向线程的ID等,通过存储的内容得知对象头是锁机制和GC的重要基础。转载 2022-12-09 16:09:12 · 470 阅读 · 0 评论 -
JVM系列之垃圾收集器
Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。图中展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。虚拟机所处的区域,则表示它是属于新生代收集器还是老年代收集器。一、概念理解...原创 2017-08-05 13:40:10 · 584 阅读 · 1 评论 -
JVM系列之GC常用常用参数
JVM参数的含义参数名称含义默认值 -Xms初始堆大小物理内存的1/64(<1GB)默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制.-Xmx最大堆大小物理内存的1/4(<1GB)默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于...原创 2017-10-11 15:36:29 · 227 阅读 · 0 评论 -
JVM系列之String
一、常量池 运行时常量池是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池,用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进去方法区的运行时常量池中存放。Java语言并不要求常量一定只有编译期才能产生,运行期间也可能将新的常量放入池中,比如String类的intern()方法。 常量池中主要存放两大类常量:字面量...原创 2017-12-14 21:40:45 · 211 阅读 · 0 评论 -
JVM系列之Metaspace
一、Metaspace介绍 JDK 8 开始把类的元数据放到本地堆内存(native heap)中,这一块区域就叫 Metaspace,中文名叫元空间。使用本地内存有什么好处呢?最直接的表现就是OOM问题将不复存在,因为默认的类的元数据分配只受本地内存大小的限制,也就是说本地内存剩余多少,理论上Metaspace就可以有多大(貌似容量还与操作系统的虚拟内存有关?这里不太清楚),这解决了...原创 2017-12-28 15:12:58 · 691 阅读 · 0 评论 -
Java内存模型
什么是JAVA内存模型 JMM是一种规范,目的是解决由于多线程通过共享内存进行通信时,存在的本地内存数据不一致、编译器会对代码指令重排序、处理器会对代码乱序执行等带来的问题。 Java内存模型规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存,线程的工作内存中保存了该线程中是用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存。...原创 2021-05-26 18:05:10 · 131 阅读 · 0 评论