jvm学习
weixin_42619248
这个作者很懒,什么都没留下…
展开
-
jvm小记
直接内存:直接内存并不是jvm运行时数据区的一部分,但是他也会被频繁地使用,而且可能会报出OOM异常。JDK1.4中加入了NIO(new input/output)类;引入了一种基于通道的(channel)与缓冲区(buffer)的I/O方式,他可以直接使用native方法区分配堆外的内存,然后通过一个存储在java堆里面的DirectByteBuffer对象作为这块内存的引用进行操作,这样可以...原创 2018-11-11 10:28:53 · 121 阅读 · 0 评论 -
jvm各个区域的OOM和
java堆、方法区还有直接内存都可能会出现OOM。java虚拟机栈和本地方法栈是线程独有的会出现SOF和OOM。java虚拟机栈存放的是java方法的执行过程里面需要的变量、引用、方法出口等信息。当栈深度不够而且又无法申请到新的内存来扩展栈的时候就会OOM。当线程请求的栈深度大于虚拟机所允许的最大深度的时候就会SOF。当线程请求创建栈的时候内存不够分配那么就会OOM。这里的OOM应该怎...原创 2018-11-11 10:29:06 · 517 阅读 · 0 评论 -
jvm模型小记
java会在执行java程序时把他的内存划分为多个不同的数据区域,每个区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机的启动来创建,有的则根据用户的线程启动和销毁来创建和销毁。java运行时数据区包含:方法区、堆、虚拟机栈、本地方法栈、程序计数器。方法区和栈是所有线程共享的区域;虚拟机栈、本地方法栈、程序计数器是线程独有的。程序计数器该区域是一块较小的内存空间,作用记录当...原创 2018-11-02 21:25:41 · 227 阅读 · 3 评论 -
JVM中的新生代和老年代(Eden空间、两个Survior空间)
版权声明,转自:https://blog.csdn.net/jisuanjiguoba/article/details/80156781 现有的主流JVM分别是HotSpot和JRockit,主要研究对象也是这两个。这篇文章里,我们只研究HotSpot,也就是所谓的Su...转载 2019-05-08 18:11:52 · 119 阅读 · 0 评论 -
java局部变量对垃圾回收的影响
转:https://www.jianshu.com/p/6060cc53aca7 结论局部变量表中的变量是很重要的垃圾回收根节点,被局部变量表中变量直接或者间接引用的对象都不会被回收。实验看如下代码,使用JVM的-XX:+PrintGC参数运行下面代码(在main函数中分别执行localVarGcN的每一个函数)package com.win...转载 2019-05-13 17:30:34 · 1775 阅读 · 0 评论