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()
堆的组成:
调优工具
标签:P2,面试题,java,字节,虚拟机,运行,Java,Math From: https://www.cnblogs.com/wuzexin/p/17578627.html