jvm学习笔记
文章平均质量分 89
zhaojianyin
runing
展开
-
类文件结构
类文件结构Class类文件的结构Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在Class文件中,中间没有添加任何分隔符,使得整个Class文件中存储的内容几乎全部都是程序运行的必要数据,没有空隙存在。当遇到需要占用8位字节以上空间的数据项时,则会按照高位在前的方式分割若干个8位字节进行存储。 根据Java虚拟机规范的规定,Class文件格式采用一种类似C语原创 2017-05-05 16:07:34 · 667 阅读 · 0 评论 -
虚拟机类加载机制
虚拟机类加载机制概述:虚拟机类加载机制: 虚拟机把class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接实用的java类型,这就是虚拟机的类加载机制。java语言中:类的加载,连接,初始化的过程都是在程序运行期间完成的,会令类的加载时间变长。但提高了java程序的灵活性。类加载的时机:生命周期: 加载->验证->准备->解析->初始化->使用->卸载 7个阶段。原创 2017-05-08 11:34:30 · 378 阅读 · 0 评论 -
类加载器
类加载器类与类加载器类加载器主要实现通过一个类的全限定名来获取描述此类的二进制字节流。对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在java虚拟机中的唯一性,每一个类加载器都拥有一个独立的类名称空间。比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义。相等:是指累的class对象的equals()方法,isAssignableFrom()方法,isInta原创 2017-05-08 15:45:11 · 292 阅读 · 0 评论 -
虚拟机字节码执行引擎
虚拟机字节码执行引擎Java程序的执行大致可以看做是各个方法的调用与执行。类的初始化在类加载阶段就已经完成了,而类实例的初始化就是构造方法的调用与执行。既然Java程序可以看做是方法的调用与执行,那么关于Java虚拟机字节码的执行引擎就应该和方法调用有很大的关系了。我们已经知道了在Java虚拟机内存中有一个部分是和方法调用相关的,即虚拟机栈。而且,这个虚拟机栈是线程私有的,所有方法的调用与退出就是栈原创 2017-05-10 09:29:40 · 621 阅读 · 0 评论 -
java内存区域和内存溢出异常
Java内存区域与内存溢出异常运行时的数据区:方法区,虚拟机栈,本地方法栈,堆,程序计数器。程序计数器:,每个线程都有一个独立的程序计数器,线程私有,记录正在执行的虚拟机字节码指令地址。没有outofmemoryError异常 java虚拟机栈:线程私有,方法执行时创建一个方法栈帧,存储局部变量表,操作数栈,方法出口等信息。 本地方法栈:类似虚拟机栈,虚拟机栈是为虚拟机执行java方法的服务,本原创 2017-04-21 16:45:20 · 397 阅读 · 0 评论