JVM
LeonCS17
这个作者很懒,什么都没留下…
展开
-
《深入理解Java虚拟机》学习笔记第8章
虚拟机字节码执行引擎 8.1 概述 在不同的虚拟机实现里面,执行引擎在执行Java代码的时候可能有解释执行和编译执行两种选择,也可能两者兼备,甚至还可能包含几个不同级别的编译器执行引擎,但从外观上看起来,所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。 8.2 运行时栈帧结构 栈帧存储了方法的局部变量表、操作数栈、动态链接和方法返回地址 等信息。每一个方法从调用开始到执行完成的过程,就对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。 一个线程中原创 2020-05-12 21:14:55 · 112 阅读 · 0 评论 -
《深入理解Java虚拟机》学习笔记第7章
虚拟机类加载机制 7.1 概述 虚拟机把表述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 7.2 类加载的时机 类从被加载到虚拟机内存开始,到卸载出内存为止,生命周期包含了下图七个阶段: 需要注意的是,解析阶段有时可能在初始化之后。 什么时候开始加载虚拟机规范并没有强制规约束,但是对于初始化阶段,虚...原创 2020-05-09 21:18:02 · 237 阅读 · 0 评论 -
《深入理解Java虚拟机》学习笔记第6章
类文件结构 6.1 概述 成程序编译成二进制本地机器码(Native Code)已不再是唯一选择,越来越多的程序语言选择了与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。 6.2 无关性基石 各种不同的平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基石。 语言无关性的基础仍然是虚拟机和字节码存储,使用编译器可以把代码编译成存储字...原创 2020-05-04 21:25:32 · 165 阅读 · 0 评论 -
《深入理解Java虚拟机》学习笔记第4章
虚拟机性能监控与故障处理工具 4.1概述 4.2 JDK的命令工具 监控工具都是由Java直接编写而成的。 jps:虚拟机进程状况工具 它可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(main()函数所在的类),以及这些进程的本地虚拟机的唯一ID(LVMID)余对于本地虚拟机进程来说,LVMID与操作系统的进程ID(PID)是一致的。 jstat:虚拟机统计信息监视工具 jstat是用于监...原创 2020-05-02 20:30:47 · 160 阅读 · 0 评论 -
《深入理解Java虚拟机》学习笔记第3章
第3章 垃圾收集器与内存分配策略 3.1 概述 垃圾收集(Garbage Collection GC)的历史远比Java更久远 3.2 对象已死? 引用计数法 给对象添加一个计数器,每有一地方引用它,计数器加1,当引用失效时计数器减1;任何时刻计数器都为0的对象就是不可能再被使用的。 然而Java没有使用这个方法来管理内存,因为它很难解决对象之间的相互循环引用的问题 根搜索算法 通过一系列...原创 2020-04-29 20:02:56 · 178 阅读 · 0 评论 -
《深入理解Java虚拟机》学习笔记第2章
Java内存区域与内存溢出异常 2.1 概述 Java程序员把内存控制权交给Java虚拟机。 2.2 运行时数据区域 Java虚拟机在执行Java程序的过程中会把所管理的区域划分成若干块,各自有不同用途,其中堆和方法区是线程共享的,虚拟机栈,本地方法区和程序计数器都是线程私有的。 2.2.1 程序计数器 程序计数器是一块较小的内存区域,作为当前线程所执行的字节码的行号指示器。对于Java方法,计...原创 2020-04-27 23:08:30 · 176 阅读 · 0 评论 -
《深入理解Java虚拟机:JVM高级特性与最佳实践》学习笔记
《深入理解Java虚拟机:JVM高级特性与最佳实践》这本书的学习笔记 第1章:走进Java(不重要,略过) 第2章:Java内存区域与内存溢出异常原创 2020-04-27 22:31:27 · 148 阅读 · 0 评论