Java面试题 P2:Jvm新能调优

wu-blog博客 / 2023-07-25 / 原文

1、JDK体系结构

JDK由:java命令及常用工具+JRE组成(java运行时环境)

JRE由:支撑java运行的各种类库+JVM(java运行时环境)

 

2、为什么java可以跨平台部署

跨平台是由java虚拟机,jvm去实现的。

 

3、Java虚拟机内部组成结构图

 

java代码运行工作顺序:

(1)先通过javac将Math.java编译为Math.class字节码文件;

(2)再通过java命令运行Math.class字节码文件;

(3)java虚拟机开始工作,将字节码文件通过类装子系统加载到第2块位置,运行时数据区

(4)通过字节码执行引擎,运行java虚拟机中内存中的java代码

 

堆:new出来的对象一般放堆中

栈:用来放变量,临时变量,局部变量。

 示例代码:

 一个方法对应一块栈帧内存区域。

栈的数据结构的特点:先进后出(FILO)

javap命令可以对java代码进行反汇编。命令为:javap -c Math.class  > Math.txt

 上面程序的反汇编 

 

 程序计数器,放正在运行或将要运行的程序的行号。当CPU时间片被其他线程抢走后恢复执行时的执行行。

 栈和堆的关系:指针

方法区:放常量,变量,类信息

方法区和堆的关系:指针指向堆的位置

本地方法:native来修饰的方法 例如start0()

 

堆的组成:

 调优工具