JVM初探(一)

目录:

  1. 一探究竟,我们写的java代码到底是如何运行起来的?
  2. JVM类加载机制
  3. JVM到底有哪些区域,分别有什么作用?
  4. 垃圾回收的机制是用来干嘛的?为什么需要垃圾回收?
  5. JVM整体运行图原理

1. 一探究竟,我们写的java代码到底是如何运行起来的?

咱们编写的java代码,比如OrderService.java,UserService.java等,编写好代码之后。那咱们一般怎么运行呢?如果是在本地通过工具运行比如Idea、Eclipse直接找一个有main方法的类运行即可是不是?

背后什么原理呢?本地的Idea工具已经关联上了本地所安装的JDK环境是不是,首先通过jdk把.java文件编译为.class字节码文件,因为java虚拟机只认识.class字节码文件的。

那编译好对应的.class文件之后呢,首先本地安装的java环境启动一个java虚拟机,然后把对应的class文件提交给虚拟机,这个时候就会有class加载器来对所提交的文件进行加载然后执行。如果提交到服务器上,那么一般都会把class文件打包成jar然后上传至服务器执行。

2. JVM类加载机制

上面说明了一个class文件的基本执行过程,中间有个类加载器需要加载所提交的class文件,这个类加载器会执行以下步骤:加载-》验证-》准备-》解析-》初始化-》使用-》卸载整个系列的过程

JVM的类启动加载器

3.JVM到底有哪些区域,分别有什么作用?

JVM主要分为以下5个区域:方法区、程序计数器、栈(虚拟机栈)、堆、本地方法区(native)。可以看到上面的类加载过程中的准备阶段,当中的class信息是需要存放在方法区的

4.垃圾回收的机制是用来干嘛的?为什么需要垃圾回收?

5.JVM整体运行图原理

分享到 评论