深入理解JVM虚拟机
阅读《深入理解JVM虚拟机》,学习JVM过程中的知识点总结
光明顶上的5G
作者5G,目前专注于Java后端技术的学习
展开
-
JVM知识点整理
视频参考定义: java程序的运行环境(java二进制字节码的运行环境)好处:一次编写,到处运行;自动内存管理,垃圾回收功能;(数组下标越界检查;多态)内存结构1.程序计数器1.1作用:记住下一条JVM指令的执行地址。Java源码经过编译形成二进制字节码(JVM指令),JVM指令经过解释器生成机器码,机器码在CPU中执行。程序计数器通过寄存器实现。1.2特点线程私有:每个线程有自己的程序计数器不会存在内存溢出2.虚拟机栈栈:线程运行需要的内存空间栈帧:每个方法运行时需要的内原创 2020-07-30 21:56:33 · 246 阅读 · 0 评论 -
第二章、Java内存区域与内存溢出异常
2.1 概述 对于Java程序员来说,虚拟机具有自动内存管理机制,不容易出现内存泄漏和内存溢出问题。也正是因为Java程序员把内存控制的机制交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那排查错误将会是一项异常艰难的工作。2.2 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数...原创 2018-10-31 22:43:10 · 150 阅读 · 0 评论 -
第三章 垃圾收集器与内存分配策略
3.1 概述 1960年诞生的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊的执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内不需要过多考虑回收的问题,因为方法结束或线程结束时,...原创 2018-11-02 19:25:58 · 149 阅读 · 0 评论 -
第五章 调优案例分析与实战
5.1 案例分析5.1.1 高性能硬件上的程序部署策略 一个15万PV/天左右的在线文档类型网站最近更换了硬件系统,新的硬件为4个CPU、16GB物理内存,操作系统为64为CentOS5.4,Resin作为web服务器。整个服务器暂时没有部署别的应用,所有硬件资源都可以提供给访问量并不算太大的网站使用。管理员为了尽量利用硬件资源选用了64位的JDK1.5,并通过-Xmx和-Xms...原创 2018-11-06 23:07:52 · 165 阅读 · 0 评论 -
第四章 虚拟机性能监控与故障处理工具
4.1 JDK的命令行工具 用于监视虚拟机和故障处理的工具,它们的功能代码是在tools类库中实现的。借助tools.jar类库里面的接口,我们可以直接在应用程序中实现功能强大的监控分析功能。4.1.1 jps:虚拟机进程状况工具 可以列出正在运行的虚拟机进程,并显示虚拟机执行主类的名称,以及这些进程的本地虚拟机的唯一ID。虽然功能比较单一,但它是使用频率最高的JD...原创 2018-11-03 18:20:35 · 172 阅读 · 0 评论 -
第七章 虚拟机类加载机制
目录 概述7.2 类加载的时机7.3 类加载的过程7.3.1 加载7.3.2 验证7.3.3 准备7.3.4 解析7.4 类加载器7.4.1 类与类加载器7.4.2 双亲委派类型概述 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是java虚拟机的类加...原创 2019-01-07 18:37:42 · 142 阅读 · 0 评论 -
第六章 类文件结构
6.1 概述 代码编译的结果是从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。由于最近10年内虚拟机及建立在虚拟机之上的大量程序设计语言如雨后春笋般出现并蓬勃发展,将我们的程序编译成二进制本地机器码已不再是唯一的选择,越来越多的程序语言选择了与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。6.2 无关性的基石 各种不...原创 2018-11-08 11:45:48 · 181 阅读 · 0 评论 -
第八章 虚拟字节码执行引擎
8.1 概述 执行引擎是Java虚拟机最核心的组成部分之一。虚拟机是一个相对于物理机的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行指定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。 在Java虚拟机规范中制定了虚拟机字节码执行引擎...原创 2019-01-11 13:48:17 · 87 阅读 · 0 评论