00-JVM学习记录-基础概念

0、概念

1. 虚拟机:

软件,用来执行一系列虚拟计算机指令。分为系统虚拟机和程序虚拟机。 运行的软件都被限制于虚拟机提供的资源中。
系统虚拟机:Visual Box、VMware,完全是对物理计算机的仿真,提供一个可运行完整操作系统的软件平台。
程序虚拟机:JVM,专门为执行单个计算机程序而设计,JVM中执行的指令称为java字节码指令。

2. JVM:java虚拟机,java技术的核心(所有java程序运行在JVM内部)

2.1 跨语言的平台

java跨平台——>JVM跨平台——>不同操作系统上运行的JVM不一样。
不同的编程语言,经各自的编译器形成的字节码(二进制),只要字节码遵循JVM的标准,就可以在JVM上运行。JVM不关心语言,只关心字节码文件,负责装载字节码到其内部,解释/编译为对应平台上的机器指令执行。 
跨平台:java一次编译,到处运行。
java源文件(.java)编译后形成字节码文件(.class),字节码文件在各操作系统的JVM上运行。

2.2 垃圾回收器

2.3 即时编译器(后端)

.java 编译成.class是前端编译器。

2.4 自动内存管理

2.5 JVM的位置

JVM运行在操作系统智商,与硬件没有直接交互。

2.6 JVM整体结构

类装载器:将字节码文件加载到方法区一个大的class对象。(加载、连接、初始化)

多线程共享方法区和堆,灰色部分每个线程各一份。

执行引擎将字节码转为机器指令,给操作系统执行。

2.7 java执行流程

2.8 JVM架构模型

Java编译器输入的指令流架构模型:基于的指令集架构和基于寄存器的指令集架构。

2.9 JVM生命周期:

三个状态(启动、执行、退出)
2.9.1 虚拟机的启动

通过引导类加载器bootstrap class loader创建一个初始类来完成的,这个类是由虚拟机的具体实现指定的。

2.9.2 虚拟机的执行

执行一个所谓的Java程序的时候,真正执行的是一个叫Java虚拟机的进程

2.9.3 虚拟机的退出
  • 程序正常执行结束
  • 执行过程遇到异常或错误而异常终止
  • 操作系统错误导致Java虚拟机进程终止
  • Runtime类halt方法或System类的exit方法,并且Java安全管理器允许这次exit或halt操作
  • JNI(Java Native Interface)规范描述了用JNI Invocation API来加载或卸载Java虚拟机时,Java虚拟机退出的情况

参考:b站尚硅谷-宋少康

相关推荐

  1. 学习记录JVM

    2024-04-03 09:40:02       48 阅读
  2. JVM基础篇---02

    2024-04-03 09:40:02       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 09:40:02       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 09:40:02       5 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 09:40:02       4 阅读
  4. Python语言-面向对象

    2024-04-03 09:40:02       6 阅读

热门阅读

  1. STM32为什么不能跑Linux?

    2024-04-03 09:40:02       20 阅读
  2. 菜鸟笔记-Python函数-ones

    2024-04-03 09:40:02       25 阅读
  3. 14、Lua 模块与包

    2024-04-03 09:40:02       24 阅读
  4. 基于单片机的LED 灯调光系统的研究

    2024-04-03 09:40:02       21 阅读
  5. Git 多人协作开发

    2024-04-03 09:40:02       22 阅读
  6. Springboot自动配置原理

    2024-04-03 09:40:02       21 阅读
  7. JVM原理

    2024-04-03 09:40:02       20 阅读