
Java虚拟机
Java虚拟机学习记录
三生石1103
我是菜鸟
展开
-
【Java】JVM(六)虚拟机字节码执行引擎
一、概述 执行引擎是虚拟机中最核心的部分之一, 虚拟机自己实现引擎,自己定义指令集和执行引擎的结构体系。二、栈帧 栈帧包含(1)局部变量表、(2)操作数栈、(3)动态链接、(4)方法返回地址、(5)额外的附加信息 栈顶的栈帧为当前栈帧,是唯一有效的。 2.1 局部变量表 用于存放方法参数和方法内部定义的局部变量。单位为槽(Slot),每个槽可以存放...原创 2018-08-06 16:55:00 · 146 阅读 · 0 评论 -
【Java】JVM(五)、虚拟机类加载机制
一、概念 类加载:虚拟机把类的数据从Class文件加载到内存中,并对数据进行校验,转化解析,和初始化,最终形成可以被虚拟机直接使用的Java类型。二、加载时机 1.加载 加载阶段虚拟机完成的工作为: 1)通过类全限定名来获取定义此类的二进制流。 2)将字节流代表的静态存储结构转化为方法区运行时的数据结构。 3)在内存中生成代表这个类的ja...原创 2018-07-20 11:23:00 · 145 阅读 · 0 评论 -
【Java】JVM(四)、虚拟机参数配置
1.-Xms20M JVM启动时候的内存大小为20M2.-Xmx20M JVM内存最大值是20M 将其与Xms大小一致可以避免JVM内存自动扩展3. -Xss128K 表示可以设置虚拟机栈大小为128K4. -Xoss128K 表示设置本地方法栈的大小为128K(HotSpot不区分虚拟机栈和方法栈) 5. -...原创 2018-07-12 09:36:00 · 156 阅读 · 0 评论 -
【Java】JVM(三)、Java垃圾收集器
一、Minor GC、Major GC 和 Full GC Minor GC:清理新生代空间,当Eden空间不能分配时候引发Minor GC Major GC:清理老年代空间 Full GC:清理Java堆空间二、新生代垃圾收集器 1. Serial 收集器 线程:单线程收集器, 算法:新生代标记复制,老年代标记整理 缺点:在进行垃圾...原创 2018-07-12 09:14:00 · 151 阅读 · 0 评论 -
【Java】JVM(二)、Java垃圾收集算法
一、标记-清除算法 算法主要分为两个步骤 1. 标记: 遍历所有的 GC Roots, 然后标记所有可达对象为存活对象 2. 清除: 遍历堆中所有对象,然后将没有标记的对象清除。 存在不足: 1. 效率低下。 2. 产生大量的磁盘空间二、复制算法 原理:将磁盘分为一半一半,每次都是用50%内存,在内存用完了, 将这50%内存中存活的...原创 2018-07-11 10:01:00 · 133 阅读 · 0 评论 -
【Java】JVM(一)、Java内存区域
一、程序计数器(Program Counter Register) 当前执行字节码的行号指示器,可以通过修改该计数器的值来实现字节码指令(分支,循环,跳转等), 每个线程都都有一个程序计数器, 属于线程的私有变量, 独立存储, 互不影响。 ps. 如果当前执行的是Java方法,该计数器记录的事正在执行的指令地址。如果当前执行的事Native方法(本地方法,与平台有关,由于Java无...原创 2018-07-10 21:55:00 · 141 阅读 · 0 评论