class{ private int i; } 如上代码,基本数据类型并不都是存放在虚拟机栈中,在《深入理解JVM》中 方法内定义的基本数据类型放在栈桢中,栈里面的数据是线程私有的,不共享。 方法外定义的全局变量,存放在…
分类:java虚拟机
深入理解Java虚拟机--读书笔记--类文件结构
6.4 字节码指令简介 Java虚拟机指令由一个操作码和零至多个操作数构成 操作码是长一个字节、代表某种特定操作含义的数字 操作数是此操作需要的参数 Java虚拟机采用面向操作数栈 的架构,故大多数的指令都不包含操作数,…
《深入理解JAVA虚拟机》第三章
这种做的读书笔记,既不是我原创的,也不是我转载的,这种分类就很尴尬了。 内存溢出: 内存泄露: 3.1 概述 1. Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。 2. 程序计数器、本地方法栈、虚拟机…
深入理解java虚拟机(三)(一个类加载器只初始化一次类对象,不同类加载器可以对同一类对象进行初始化)
package com.ygl; class Final{ public static final int x=6/3;//此处x在编译时能计算出值,是编译时的常量,则System.out.println(Final.x…
深入理解Java虚拟机——Java堆测试
代码Test案例是对Java堆,新生代、老年代的理解和认识,对GC回收机制的应用 1.直接运行只展示Java堆内存的使用情况。 2.在运行之前,eclipse或Idea配置JVM运行参数(见代码注释中),运行可得详细信息…
【深入理解Java虚拟机学习笔记】虚拟机类加载机制
# 虚拟机类加载机制 类加载时机 类从被加载到虚拟机内存中开始,到卸载出内存位置,整个生命周期如下 加载 验证 准备 解析 初始化 使用 卸载 必须初始化的情况 遇到new、getstatic、putstatic、inv…
深入理解java虚拟机(八):java内存分析工具-MAT和OQL
以下内容翻译自MAT帮助文档。 MAT下载地址 http://www.eclipse.org/mat/ 一、Class Histogram Class Histogram shows the cla…
深入理解java虚拟机之一window下编译OpenJDK环境搭建
最近在看java JVM的编译原理,才来研究这些。在window下搭建编译OpenJDK的环境,真的很蛋疼,不信的人可以试试。 环境构建需要的工具 1.cygwin 工具。这个工具的主要用处是为了在window平台上模拟…
深入理解Java虚拟机--读书笔记3/3
Chap 10 早期(编译期)优化 1.编译过程:A.解析与填充符号表。B.插入式注解处理器的注解处理过程。C.分析与字节码生成过程。 2.解析包括词法分析(将代码中的字符流转变为标记的集合Token)和语法分析(将To…
深入java虚拟机第9章, 垃圾收集(4)
深入java虚拟机第9章, 垃圾收集(4) finalize方法 终结方法是垃圾收集器在释放对象前必须运行。垃圾收集器必须检查它所发现的不再被引用的对象是否存在finalize方法。 对象可触及性的生命周期 在垃圾收集器…
深入理解Java虚拟机 ch6 类文件结构 读书笔记
part3 虚拟机执行子系统 本部分讲虚拟机的执行过程所涉及到的一些问题。这部分详细地说明了Java是如何实现平台无关的:JVM和字节码存储格式。通过设计一个统一的Class文件标准去存储字节码(JVM指令集,符号表…
《深入理解java虚拟机》 精华总结(面试)
一、运行时数据区域 Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区 1.1 程序计数器 程序计数器是…