[图片] 关键词:java 字节码、java 类加载机制、jvm 内存模型、jvm 垃圾回收机制 ZERO 持续更新 请关注:https://zorkelvll.cn/blogs/zorkelvll/articles/2018/11/18/1542542925949 一、JVM 所谓JVM,即一种对操作系统和硬件平台进 ..

JVM 综述

关键词:java 字节码、java 类加载机制、jvm 内存模型、jvm 垃圾回收机制

ZERO

    持续更新 请关注:https://zorkelvll.cn/blogs/zorkelvll/articles/2018/11/18/1542542925949

一、JVM

所谓JVM,即一种对操作系统和硬件平台进行抽象的软件,可以执行 java 二进制字节码的程序,通过将每一条java 字节码指令翻译成不同平台机器码,达到在特定平台运行 java 字节码程序的目的。

其中,java 字节码即由 java 编译器编译 java 程序得到的二进制 class 文件程序!

二、JVM 漫谈

1、既然要执行二进制字节码.class 程序,那么 JVM 肯定首先需要的是读取这些 class 文件吧,也就是第一个点java 类的加载机制,涉及到的点有:**** 类的装载、**** 类生命周期、类加载过程、类装载器、双亲委派模型

2、既然是 1 中已经读取了.class 文件中的二进制数据,那么 JVM 总归是要提供内存空间去存储这些二进制数据吧,也就是第二个点JVM 内存模型,涉及到的点有:程序计数器、java 虚拟机栈、本地方法栈、静态方法区、堆区

3、既然有内存存储二进制数据 (方法区) 和 Class 对象 (堆),那么 JVM 肯定是需要对这些使用或未使用的内存空间进行管理的,也就是JVM 垃圾回收机制,涉及到的点有:对象存活判断 (引用计数法、可达性分析法)、垃圾收集算法 (标记 - 清除算法、复制算法、标记 - 压缩算法、分代收集算法)、垃圾收集器

4、既然涉及到对内存空间 (方法区和堆) 的管理,那么一定就有对相关内存空间参数大小的设置操作,也即所谓的jvm 调优,涉及到的点有:相关监控和故障处理命令(jps jstat jmap jhat jstack jinfo)、相关监控调优工具(jconsole.exe、jvisualvm.exe,MAT(Memory Analyzer Tool)、GChisto)

三、JVM 相关疑问??

1、垃圾收集器执行垃圾回收频率什么样的一个范围算是正常,或者多什么样的频率算是过度频繁而需要调整堆空间大小的,或者说根据什么样的业务场景具体的例子呢?

  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    80 引用 • 105 回帖
回帖   
请输入回帖内容...