Java
风轻淡淡
这个作者很懒,什么都没留下…
展开
-
Java虚拟机04-对象的彻底消亡
一个对象的真正消亡至少要经历两次标记过程:如果对象在进行根搜索后发现没有与GC Roots相连接的引用链,那他将会被第一次标记并且进行一次筛选,筛选的条件是此时对象是否有必要执行finalize()方法。当对象没有覆盖finalize()方法,或者finalize()方法已经被虚拟机调用过,虚拟机将这两种情况都视为“没有必要执行”。 如果这个对象被判定为有必要执行finalize()方原创 2018-01-14 14:50:12 · 371 阅读 · 0 评论 -
Java虚拟机03-垃圾回收
概述: 程序计数器、虚拟机栈、本地方法栈三个区域随线程而生随线程而灭;栈中的栈帧随着方法的进入和退出有条不紊的执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,这几个区域内不需要考虑过多的回收问题,因为方法结束或者线程结束时,内存自然就跟着回收了。 Java堆和方法区不一样,一个接口中的多个实现需要的内存可能不一样,一个方法中的多个分支原创 2018-01-14 14:51:28 · 281 阅读 · 0 评论 -
Java虚拟机02-对象访问
Object obj = new Object(); 假设,这句代码出现在方法体中,那“Object obj”这部分的语义将会反映到Java栈的本地变量表中,作为一个引用类型出现。而“new Object()”这部分的语义将会反映到Java堆中,形成一块存储了Object类型所有实例数据值(对象中各个实例字段的数据)的结构化内存,根据具体类型以及虚拟机实现的对象内存布局的不同,这块内存的长原创 2018-01-14 14:46:25 · 272 阅读 · 0 评论 -
Java虚拟机01-运行时的数据区
java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途以及创建和销毁的时间,有些区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。程序计数器 程序计数器是一块较小的内存空间,他的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变原创 2018-01-14 14:38:57 · 302 阅读 · 0 评论