JVM的位置和体系结构

JAV体系结构

image-20211023132927213

上图中名次解释

  • Class File:java文件通过javac 执行类似javac Hello.java 的命令,将java文件编译成class文件

  • 类加载器:将一些类加载到内存中的方法区中,

  • 方法区:在jdk1.8之前叫方法区,1.8之后修改成方法区,不同点在于,方法区属于堆空间一部分,是有默认大小的,元空间利用的是宿主机的内存,是动态扩展的;主要存放了一些常量、静态变量、类信息等,可以理解成class文件在内存中的存放位置。

  • 栈:JVM执行java代码使用的栈

  • 本地方法栈:JVM调用操作系统方法使用的栈

  • 堆:是JVM执行java代码使用的堆;主要存放new出来的对象

  • 程序计数器:是JVM执行程序的流水线,存放一些跳转指令

new 类名()底层做了什么?

可以简单的分为以下几个步骤:

  1. 检查方法区中,有无该类模板——>
  2. 生成一个对象,存储在堆中——>
  3. 如果有对象的引用变量,则在栈中生成该引用变量,并将该引用变量指向堆中对应的对象

具体看另一篇博客:new一个对象,底层做了哪些事情 | 代码流畅,心情舒畅! (liu-ruyang.github.io)

Contents
  1. 1. JAV体系结构
    1. 1.1. 上图中名次解释
  2. 2. new 类名()底层做了什么?
|