史诗级详解面试中JVM的运行时内存结构
- 1.1Java代码到底是如何运行起来的?
- 1.2 画一下JVM整个运行原理图?
- 1.3 请介绍一下JVM的内存结构划分?
- 1.4 JVM哪些区域是线程私有的,哪些区域是线程共享的?
- 1.5 从JVM角度剖析如下程序代码如何执行?
- 1.6 JVM运行时数据区 程序计数器 的特点及作用?
- 1.7 JVM运行时数据区 虚拟机栈的特点及作用?
- 1.8 JVM运行时数据区 本地方法栈的特点及作用?
- 1.9 JVM运行时数据区 Java堆的特点及作用?
- 1.10 JVM中对象如何在堆内存分配?
- 1.11 JVM堆内存中的对象布局?
- 1.12 JVM什么情况下会发生堆内存溢出?
- 1.13 JVM如何判断对象可以被回收?
- 1.14 谈谈Java中不同的引用类型?
- 1.15 JVM堆内存分代模型?
- 1.16 请介绍一下JVM堆中新生代的垃圾回收过程?
- 1.17JVM对象动态年龄判断是怎么回事?
- 1.18 什么是老年代空间分配担保机制
- 1.19 什么情况下对象会进入老年代?
- 1.20 JVM运行时数据区 元空间的特点及作用?
- 1.21 JVM本机直接内存的特点及作用?
- 1.22 JVM本机直接内存溢出问题?
- 1.23 说几个与JVM内存相关的核心参数?
1.1Java代码到底是如何运行起来的?
1、Mall.java -->javac --> Mall.class --> java Mall (jvm进程,也就是一个jvm虚拟机)
2、Mall.java -->javac–>Mall.class -->Mall.jar --> java -jar Mall.jar
3、Mall.java --> javac --> Mall.class -->Mall.war --> Tomcat --> startup.sh --> org.apache.catalina.startup.Bootstrap (jvm进程,也就是一个jvm虚拟机)
其实运行起来一个Java程序,都是通过D:\dev\Java\jdk1.8.0_251\bin\java 启动一个JVM虚拟机,在虚拟机里面运行Mall.class字节码文件;
1.2 画一下JVM整个运行原理图?
1.3 请介绍一下JVM的内存结构划分?
加载进来的.class字节码文件、代码执行创建的