【JVM 01-引言入门篇】

JVM 引言篇01 笔记记录

  • [1. 什么是JVM?](#1. 什么是JVM?)
  • [2. 学习JVM有什么用?](#2. 学习JVM有什么用?)
  • [3. 常见的JVM](#3. 常见的JVM)
  • [4. 学习路线](#4. 学习路线)

学习资料来源-b站黑马

1. 什么是JVM?

定义:Java虚拟机(Java Virtual Machine 简称JVM )是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。【Java 二进制字节码运行环境】

好处:

  • 一次编写,到处运行
  • 自动内存管理,垃圾回收功能
  • 数组下标越界越界检查
  • 多态
    比较JDK、JRE、JVM:

2. 学习JVM有什么用?

  • 功利一点的话就是,面试会问到。
  • 理解底层的实现原理。
  • 中高级程序员必备技能,除了业务代码,还要有解决线上出现问题的能力,比如内存溢出、响应时间缓慢等等,这些发生的原因可能很多都是和JVM相关的,当掌握了JVM的知识以及一些常见的工具,就能够快速的去定位和分析解决这些问题。

3. 常见的JVM

常见的JVM其实挺多的,比如著名的Oracle公司的HotSpot,还有包括Eclipse 的OpenJ9DE等等。

可以看看自己的Java虚拟机使用的是什么。

这里有些是免费的有些是收费的,商业使用的。

4. 学习路线

主要分为下面几块

  1. 类加载器
  2. JVM内存结构
  3. 执行引擎

简单来说就是要理解:

一般一个类从Java源代码编译成了二进制字节码 以后,都必须经过类加载器才能被加载到JVM里面去运行,类一般都放在方法区 中,类创建的实例对象放在 中,而堆里面这些对象在调用方法时又会用到虚拟机栈、程序计数器以及本地方法栈 等。方法执行时,每行代码是由于执行引擎 中的解释器逐行进行执行。对于一些热点代码,被频繁调用的代码会用JIT的即时编译器 编译,相当于一个优化后的执行。还有很重要的模块GC垃圾回收模块 ,会对堆中的一些不在引用的对象进行垃圾回收。还有一些Java代码不方便实现的功能,必须调用底层操作系统的功能,所以需要借助本地方法接口 来调用操作系统提供的一些功能和方法。

相关推荐
StayInLove15 小时前
JVM 内存问题排查方法论
jvm
wuminyu16 小时前
Kafka利用sendfile与Page Cache实现高性能传输剖析
java·linux·c语言·jvm·c++
my_realmy17 小时前
Java 基础面试笔记(二):JDK、JRE、JVM、JIT 与 JAR
jvm·虚拟机·jit·特性·jre·垃圾回收机制
Nuanyt17 小时前
JUC常见核心知识梳理01 线程 并发 JMM volatile 管程 锁 synchronized
java·开发语言·网络·jvm
CodeStats17 小时前
【Java 类加载器】Java 类加载器完整体系深度拆解(中):URLClassLoader 能力剖析与继承委派辨析
java·jvm·classloader·类加载器
驭渊的小故事1 天前
多线程02
java·开发语言·jvm
CodeStats1 天前
【Java 类加载器】Java 类加载器完整体系深度拆解(上):从 JVM 启动到双亲委派模型
java·开发语言·jvm·classloader·双亲委派
CodeStats1 天前
【Java类加载器】Java 类加载器完整体系深度拆解(下):自定义加载器实战与 SPI 破坏双亲委派(MySQL 驱动揭秘)
java·开发语言·jvm·classloader·双亲委派
Nuanyt2 天前
JVM常见核心知识梳理02 类加载 字节码技术 双亲委派 Java内存模型 JMM 并发底层 volatile synchronized 常见排障与调优工具
java·开发语言·jvm
焦虑的说说2 天前
jvm知识汇总
jvm