JVM
ZKaTT
正在学习中
展开
-
虚拟机类加载机制
类的生命周期包括:加载-->连接-->初始化-->使用-->卸载,其中连接包括,验证-->准备-->解析。虚拟机把描述类的数据从Class文件中加载到内存,并对数据进行校验,转换,解析和初始化,最终形成可被虚拟机直接使用的Java类型。在Java中,类的加载,连接,初始化都是在运行期间完成的,这种策略与C++等不同,但是这也实现了Java语言的运行期动态加载与动态连接的特点。类加载的过程:原创 2017-03-08 15:39:13 · 272 阅读 · 0 评论 -
虚拟机字节码执行引擎
Java执行引擎的过程为:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。栈帧是支持虚拟机方法调用与执行的数据结构,栈帧存储了方法的局部变量表,操作数栈,动态连接,方法返回地址等信息。每一个方法的调用都是栈帧在虚拟机栈中入栈和出栈的过程。在活动线程中,只有位于栈顶的栈帧才是有效的,称为当前栈帧。 局部变量表: 局部变量表是一组变量值存储空间,用于存放方法参数与方法原创 2017-03-09 14:35:45 · 298 阅读 · 0 评论 -
JVM内存区域
Java运行时数据区分为:方法区,堆,虚拟机栈,本地方法栈,程序计数器。其中,方法区与堆为所有线程共享;虚拟机栈,本地方法栈与程序计数器为线程私有。 程序计数器: 所占内存空间比较小,可以看做当前线程所执行字节码的行号指数器。字节码解释器在工作时就是通过这个计数器的值来选取下一条需要执行的字节码指令。每个线程都有一个独立的程序计数器,各个线程的程序计数器互不影响,独立存储,为“原创 2017-03-06 23:17:50 · 255 阅读 · 0 评论