结论
局部变量表中的变量是很重要的垃圾回收根节点,被局部变量表中变量直接活着间接引用的对象都不会被回收。
实验
看如下代码,使用JVM的-XX:+PrintGC参数运行下面代码(在main函数中分别执行localVarGcN的每一个函数)
package com.winwill.jvm.basic;
/**
* @author qifuguang
* @date 15/4/21 20...
分类:
编程语言 时间:
2015-04-22 09:46:32
阅读次数:
177
1. Kilim中Fiber的作用
Fiber主要作用用来管理和保存Task执行过程中调用层次中的函数栈帧的状态,这里的函数栈帧与JVM运行时中的函数栈帧是相同含义,但是Fiber不会将函数栈帧中的全部信息原封不动的镜像拷贝一份,比如局部变量表中的所有变量,而是经过代码分析之后有选择的暂存有必要保留的变量,一般只需要保存后续执行流程中需要用到的变量,例如静态常量等就无需保存到Fiber中,因为静...
分类:
编程语言 时间:
2015-04-19 06:31:11
阅读次数:
430
Java 虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型成为各种版本虚机执行引擎的统一外观(Facade)。在不同的虚拟机实现里面,执行引擎在执行Java代码的时候可能会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也可能两者兼备,甚至还可能会包含几个不同级别的编译器执行引擎。...
分类:
其他好文 时间:
2015-04-10 09:36:29
阅读次数:
225
Java虚拟机运行时数据区
运行时数据区主要包括:方法区、堆、虚拟机栈、本地方法栈、程序计数器。
其中方法区和栈是线程共享的区域,另外三块区域是每个线程私有的区域。各个数据区的功能简单说明如下:
程序计数器:当前线程所执行的字节码的行号指示器。
虚拟机栈:描述Java方法执行的内存模型——每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法...
分类:
编程语言 时间:
2015-03-13 22:24:59
阅读次数:
223
运行时数据区域:
线程私有:
1.程序计数器
如果正在执行的方法为Native方法,程序计数器值为空。
2.java虚拟机栈
虚拟机栈描述java方法执行的内存模型:每个方法被执行时会同时创建一个栈帧用于存储局部变量表、操作栈、动态链接、方法出口。从方法的调...
分类:
编程语言 时间:
2015-03-09 17:40:15
阅读次数:
151
第8章 虚拟机字节码执行引擎8.2 运行时栈帧结构 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构。 每一个栈帧包括了局部变量表、操作数栈、动态连接、方法返回地址和一些额外的附加信息。 在活动线程中,只有位于栈顶的栈帧才是有效的,称为当前栈帧 Current S...
分类:
编程语言 时间:
2014-12-23 22:31:15
阅读次数:
225
栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。第一个方法从调用开始到执行完成,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。
每一个栈帧都包括了局部变量表,操作数栈,动态连接,方法返回地址和一些额外的...
分类:
编程语言 时间:
2014-12-14 13:18:31
阅读次数:
227
java 虚拟机自动内存管理。java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同区域1 程序计数器每个线程都有一个独立的计数器,用来指示需要执行的字节码的位置。2 虚拟机栈虚拟机栈是用来描述java方法执行的内存模型,每个方法被执行的时候都会同时创建一个栈帧用于储存局部变量表...
分类:
编程语言 时间:
2014-10-21 19:37:14
阅读次数:
197
运行时数据区:程序计数器:当前线程所执行的字节码的行号指示器,如果正在执行的是Native方法,这个计数器值则为空。Java虚拟机栈:用于存储局部变量表(基本数据类型、对象引用和returnAddress类型)、操作数栈、动态链接、方法出口等信息,是线程私有的,它的生命周期与线程相同。本地方法栈:N...
分类:
编程语言 时间:
2014-09-27 10:37:49
阅读次数:
189
1.定义AutoLISP函数 (defun 函数名(变元……/局部变量……)表达式) (1)函数名与变量名的命名规则相同,不应与现有AutoLISP函数重名,否则,现有函数将被新定义的功能所取代。(2)变元即参数。即便没有变元也不能省略"()"。(3)局部变量。这里的局部变量是指局限于该函数内部.....
分类:
其他好文 时间:
2014-09-11 17:02:52
阅读次数:
320