JVM学习笔记:虚拟机性能监控】的更多相关文章

前言 JDK的bin目录中有一系列的小工具,除了java.exe.javac.exe这两个编译和运行Java程序外,还有打包.部署.签名.调试.监控.运维等各种场景都会用到这些小工具. 这些工具根据软件可用性和授权的不同,可以把它们划分为三类: 商业授权工具: 主要是JMC(Java Mission Control)及它要使用到的JFR(Java Flight Recorder),JMC在个人开发环境中使用是免费的,但是在商业环境中使用它则是付费的. 正式支持工具: 这一类工具属于被长期支持的工…
之前扯了四篇理论,这一篇终于可以动动手了.本篇我们将介绍JVM常用的一些工具,这些工具将是我们监控JVM状态.处理故障和调优分析的利器. 不过在开始之前,我还是要先车扯两句:工具终归只是帮助我们我们处理问题的,想要快速准确的解决问题,最为关键的还是对内在理论的理解和丰富的实践经验,所以如果对JVM的内存处理机制不了解,还是要用心学习一下.好了, 子曰:“工欲善其事,必先利其器.“,下边开始介绍. 一.JDK命令行工具 所有的java开发人员都知道JDK的bin目录下存放着编译java需要的jav…
一.概述 经过前面两章对于虚拟机内存分配与回收技术各方面的介绍,相信读者已经建立了一套比较完整的理论基础.理论总是作为指导实践的工具,能把这些执行应用到实际工作中才是我们的最终目的.接下来我们会从实践的角度去了解虚拟机内存管理的世界. 二.JDK的命令行工具 Java开发人员肯定都知道JDK的bin目录中的“java.exe”.“javac.exe”这两个命令行工具,对并非所有程序员都了解JDK的bin目录之中其他命令行程序的作用.每逢JDK更新版本时,bin目录下命令行工具的数量和功能都会不知…
JVM类加载机制分两部分来总结: (1)类加载过程 (2)类加载器 一.JVM类加载过程 类的加载过程:加载 →连接(验证 → 准备 → 解析)→ 初始化. 类的生命周期:加载 →连接(验证 → 准备 → 解析)→ 初始化 → 使用 →  卸载. 1 加载 1.1 加载阶段要做的3件事情 通过一个类的全限定名来获取该类对应的二进制字节流. 将这个字节流所代表的静态存储结构转化为方法区的数据结构. 在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口…
JVM学习笔记二之GC GC即垃圾回收,在C++中垃圾回收由程序员自己来做,例如可以用free和delete来回收对象.而在Java中,JVM替程序员来执行垃圾回收的工作,下面看看GC的详细原理和执行过程. 1.对象已死? 1.1 引用计数法 Java GC不采用引用计数法是因为无法解决对象互相引用导致无法回收的问题. 1.2 可达性分析法 从GC ROOT开始搜索,搜索不到的并且经过第一次标记.清理后未复活的对象. GC ROOT包括: 虚拟机栈中引用的对象 方法区中静态属性引用的对象 方法区…
JVM学习笔记-第七章-虚拟机类加载机制 7.1 概述 Java虚拟机描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制. 两个约定: 后文直接对"类型"的描述都同时蕴含着类和接口的可能性 本章所提到的"Class文件"也并非特指某个存在于具体磁盘中的文件,而应当是一串二进制字节流. 7.2 类加载的时机 一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整…
JVM学习笔记-第三章-垃圾收集器与内存分配策略 tips:对于3.4之前的章节可见博客:https://blog.csdn.net/sanhewuyang/article/details/95380620 3.5 经典垃圾收集器 3.5.1 Serial收集器 这个收集器是一个单线程工作的收集器,但它的单线程的意义并不仅仅是说明他只会使用一个处理器或一条收集线程去完成垃圾收集工作,更重要对的是强调在它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束. 目前已经老无可用,但有着优于其他收…
java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新的解析一次, 第二种,即时解析,也就是转载到内存的字节码会被解析成本地机器码,并缓存起来以提高重用性,但是比较耗内存, 第三种,自适应优化解析,即将java将使用最贫乏的代码编译成本地机器码,而使用不贫乏的则保持字节码不变,一个自适应的优化器可以使得java虚拟机在80%-90%的时间里执行优化过的…
JVM 学习笔记记录 Sun JDK 监控和故障处理工具 名称 主要作用 jps JVM Process Status Tool, 显示指定系统内所有的HotSpot虚拟机进程 jstat JVM Statistics Moitoring Tool,用于收集HotSpot虚拟机各方面的运行数据 jinfo Configuration info for java,显示虚拟机配置信息 jmap Memory Map for java,生成虚拟机的内存转储快照(heapdump文件) jhat JVM…
JVM学习笔记-第六章-类文件结构 6.3 Class类文件的结构 本章中,笔者只是通俗地将任意一个有效的类或接口锁应当满足的格式称为"Class文件格式",实际上它完全不需要以磁盘的形式存在. Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全都是程序运行的必要数据.当遇到需要占用8个字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8个字节进行存储.Class文…