![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM学习
文章平均质量分 85
普通网友
这个作者很懒,什么都没留下…
展开
-
深入理解java虚拟机-1 内存结构与OutOfMemory溢出异常
一,内存结构1.栈 Stack虚拟机栈 为java方法服务Java虚拟机栈也是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是java方法执行的内存模型:每个方法被执行时都会同时创建一个栈帧用于存放局部变量表、操作数栈、动态连接和方法出口等信息。每个方法被调用直至执行完成过程,就对应着一个栈帧在虚拟机中从入栈到出栈的过程。Java虚拟机栈的局部变量表存放了编原创 2015-07-30 15:30:11 · 1204 阅读 · 0 评论 -
java: system.gc()和 finalize 的使用情景
finalize的作用的在进行垃圾回收前,执行的一个方法,这个方法里面不能放回收资源的东西,比如关闭流等,因为这个方法不一定被调用这个方法只有进行垃圾回收时才被调用下面这个例子是关于finalize的一个使用情景原创 2015-08-14 10:32:22 · 521 阅读 · 0 评论 -
深入理解java虚拟机-2 垃圾收集器
1.对象已死?1.引用计数算法2.可达性分析算法2.引用1.强引用2.软引用 3.弱引用 4.虚引用作用:在这个对象被回收时,收到一个系统通知3.Finalize 一个对象死亡的过程 发现没有和GC Roots相连接->被标记一个,并检测,是否有必要执行Finalize方法->Yes的话被放入F-Queue中->稍后GC对 F原创 2015-07-31 09:12:07 · 410 阅读 · 0 评论 -
深入理解java虚拟机-3 内存分配与回收策略
Java技术体系中的自动化内存管理最终可以分为两个问题:给对象分配内存以及回收分配给对象的内存下面使用Serial 和serial Old收集器来验证分配策略1,对象优先在Eden分配新生区分 Eden与Serivivor 默认比例8:1大多数情况下,对象在新生代Eden中分配,新生代没有空间时,虚拟机发起一场Minor GC-XX:+PrintfGCDetails 在垃圾回收原创 2015-08-03 08:38:17 · 504 阅读 · 0 评论 -
深入理解java虚拟机-4 虚拟机类加载机制
在java语言中,类的加载,链接和初始化都是在运行期间发生的,所以java语言天生就可以实现动态拓展1.类的生命周期加载->验证->准备->解析->初始化->使用->卸载验证+准备+解析 叫做连接(Linking)类的生命周期共有7步,其中加载,验证,准备,使用,卸载的顺序是固定的,但是解析和初始化不是固定的,某些情况下解析可以在初始化后面进行1.加载加载过程中需要原创 2015-09-08 16:43:44 · 452 阅读 · 0 评论