对象 对象创建 Created with Raphaël 2.1.0 Start 虚拟机遇到一条new指令 指令的参数是否能在常量池 中定位到一个类的引用符号? 这个符号引用代表的类是否 已被加载、解析和初始化过? 为新…
标签:java虚拟机
Java虚拟机——类加载器深入剖析
一、java虚拟机与程序的生命周期 在如下几种情况下,java虚拟机将结束生命周期: 1、执行了System.exit()…
深入理解Java虚拟机--类加载器
通过一个类的全限定名来获取描述此类的二进制流,执行这个动作的代码模块成为“类加载器”。 两个类只有在同一个类加载…
深入理解Java虚拟机--运行时栈帧结构
栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构。它是虚拟机运行时数据区的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。 …
《深入理解Java虚拟机》:HotSpot虚拟机内的即时编译器
HotSpot虚拟机内的即时编译器 最近在看周志明老师的《深入理解Java虚拟机》这本书,看了之后感觉收获挺多的,于是就写点读书总结吧。 先看如下问题: 1、 为何HotSpot虚拟机要使用解释器与编译器并存的架构? 2…
《深入理解java虚拟机》:类的初始化
深入理解java虚拟机》:类的初始化 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。其中验证、准备、解析3个部分统称为连接。类加载的过程包括了加…
《深入理解Java虚拟机》:类加载的过程
《深入理解Java虚拟机》:类加载的过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。其中类加载的过程包括了加载、验证、准备、解析、初始化五个…
《深入理解Java虚拟机》:类加载和初始化(二)
《深入理解Java虚拟机》:类加载和初始化(二) 在去年看《深入理解Java虚拟机》的时候,写过一篇关于类加载和初始化的博客,最近又在看这一块的知识,发现还是有很多东西没有理解好。借助于网上的一些博客,学习了一点新的知识…
《深入理解java虚拟机》学习笔记(一)
说明 本系列为第一遍阅读的笔记,主要以摘录为主,等后面有一定经验后二刷、三刷,再根据自己经验对一些常用、常见、重点进行举例解释。 阅读目标 本次阅读主要以应付面试为主,目标是对jvm有个大概认知,知道常见面试问题中的答案…
深入Java虚拟机——JVM内存详解
在C++中,程序员拥有每一个对象的所有权,但与此同时还肩负着释放对象内存空间的责任;而Java由于有了虚拟机的帮助,程序员拥有对象的所有权的同时不再需要释放对象的内存空间。由于是JVM自动进行对象内存的释放,所以内存泄漏…
深入理解Java虚拟机 三、内存分配与回收
三、内存分配与回收 Java技术体系中所提倡的自动内存管理最终可以归结为自动化的解决两个问题: 给对象分配内存和回收分配给对象的内存。 1.对象优先在Eden分配 大多数情况下,对象在新生代Eden区中分配。当Eden区…
深入理解Java虚拟机 四、虚拟机性能监控与故障处理工具
四、虚拟机性能监控与故障处理工具 JDK命令行工具: Java开发人员肯定都知道JDK的bin目录中有“java.exe”、“javac.exe”这两个命令行工具,但并非所有程序员都了解过JDK的bin目录之中其他命令行…