0%

JVM学习笔记

[TOC]

1 为什么学习JVM

1.面试需要

2.更深入的理解Java

  • 一个类是如何加载到JVM的
  • 它在JVM中是如何存储的
  • 如何运行的
  • 方法是如何调用的
  • 运行时内存怎么分配的
  • 产生垃圾后是如何回收的

3.排查解决故障

  • 内存溢出导致宕机了
  • CPU使用率居高不下
  • 频繁卡顿
  • 应用越跑越慢

4.性能调优

  • 合理的分配内存
  • 调整参数
  • 选择GC垃圾回收器
  • 第三方中间件的适配

2 认识JVM规范

认识JVM:是什么,有什么,能干什么

JVM:Java Virtual Machine,也就是Java虚拟机

虚拟机:通过软件模拟的具有完整硬件系统功能的,运行在一个完全隔离环境中的计算机系统
JVM是通过软件来模拟Java字节码的指令集,是Java程序的运行环境

image-20201224105252066

JVM主要功能

  1. 通过ClassLoader寻找和装载class文件
  2. 解释字节码成为指令并执行,提供class文件的运行环境
  3. 进行运行期间的内存分配和垃圾回收
  4. 提供与硬件交互的平台

​ JVM跨平台特征

image-20201224105219618

JVM规范作用及其核心

Java虚拟机规范为不同的硬件平台提供了一种编译Java技术代码的规范

该规范是Java软件独立于平台,因为编译针对作为虚拟机的“一般机器”而做

JVM规范定义的主要内容

可以看官方文档

  • 字节码指令集(相当于中央处理器CPU)
  • Class文件的格式
  • 数据类型和值
  • 运行时数据区
  • 栈帧
  • 特殊方法
  • 类库
  • 异常
  • 虚拟机的启动,加载,链接和初始化

虚拟机规范内容很多,了解即可

3.类加载、连接和初始化

4 内存分配

5 字节码执行引擎

6 垃圾回收

7 高效并发

8 性能监控与故障处理工具

9 JVM调优