Java基础知识-Jvm笔记(一)
1.jvm基础知识
jvm执行过程:
HelloWolrd.java -> 工具编译 -> HeWorld.class ->
JRE(JVM ClassLoader ->解释执行或者JIt及时执行-> 执行引擎 ->os 硬件)
{跨平台与语言无关系} :java ,scala ,kotlin,groovy
尝试:jvm 翻译一门语言、开发一门语言。
虚拟机版本:
Oracle(HotSpot 版本 ,Jrocket版本已被优化) , IBM (J9)自己平台
taobao(VM) zing
虚拟机有基本的组织规范
JVM (重要)知识体系:垃圾回收 类加载 性能调优 JVM自身优化技术 执行引擎 监控工具 类文件结构 内存结构。
2.jvm内存区域
jvm java虚拟机 。class 虚拟机指令
运行时数据区{线程共享区{方法去,运行时常量池},线程私有化},直接内存或者叫堆外内存。
程序启动后启动虚拟机栈 :1个线程1个虚拟机栈,当前线程运行java所需要的,每个方法 指令的放回地址。
大小限制:-Xss 栈容量大小。不同的操作系统不同 x64默认大概是1M 可以参考官网文档
栈溢出:反复调用自己栈异常。
虚拟机栈最核心的**:栈帧{局部变量表,操作数栈,动态链接,完成出口}**
Person person = new Person();
new 出来的对象一般都在共享堆中间
操作数栈:执行引擎的工作区。
JVM 模拟版本的操作系统。CPU = JVM执行引擎 ,主内存 = 栈 堆, 缓存 =
操作数栈。
反汇编命令:
javap
上一篇: Spark考试题总结
下一篇: 解决ztree搜索中多级菜单展示不全问题