- 11
- 0
- 约1.08千字
- 约 17页
- 2021-03-27 发布于北京
- 举报
JVM图灵学院张飞2017-11课程安排JVM一系列概念梳理JVM运行流程JVM结构JVM运行时数据区JVM内存模型Volatile指令重排重点掌握JVM运行流程JVM结构JVM运行时数据区域JVM内存模型JVM一些概念(10分钟)JVM和普通虚拟机VMWare, Visual Box : CPU指令JVM:程序自己独立的运行环境:堆栈,寄存器,字节码指令JAVA, Scala,Grovvy..JVM/JDK/JRE关系JVMJREJDKJVM产品有哪些HotSpot、Jrockit, J9为什么会出现JVMC/C++:os架构,CPU架构JAVA : 一次编写到处运行JVM运行流程JVM结构JVM包含:1.类加载器2.执行引擎3.运行时数据区4.本地接口JVM结构JVM包含:1.类加载器2.执行引擎3.运行时数据区4.本地接口JVM结构ClassLoader类加载器双亲委派模型类加载过程加载连接验证准备解析初始化clinit执行静态代码块,静态变量public static int a = 10a=0,a=10双亲委派模型自上而下加载类自底向上检查类是否已经加载启动类加载器 rt.jar扩展类加载器 %java_home%/lib/ext/应用类加载器 classpath自定义类加载器 自定义路径启动类加载器扩展类加载器应用类加载器自定义类加载器JVM运行时数据区Program Counter Register作用当前线程执行的字节码的行号指示器,通过改变此指示器来选取下一个需要执行的字节码指令特征在线程创建时创建每个线程拥有一个指向下一条指令的地址Method Area(Non-Heap)线程共享存储类信息常量静态变量方法字节码VM Stack / Native Method Stack线程私有方法在执行时会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程局部变量表所需的内存空间在编译期间完成分配,而且分配多大的局部变量空间是完全确定的,在方法运行期间不会改变其大小出栈后空间释放Heap线程共享存储对象或数组Heap划分年轻代老年代Eden(新生代 new)s0s1TenuredGCJMM线程工作内存,主内存JMM模型线程执行引擎assignuse线程工作内存store,writeread,load主内存(线程共享)Volatile可见性保证可见性的方法指令重排有序性线程内串行语义案例怎么保证有序性
您可能关注的文档
最近下载
- 美邦服饰存货管理问题分析.docx VIP
- 私募基金投资意向协议.docx VIP
- 电气工程综合实验.doc VIP
- 树立和践行正确政绩观PPT.pptx VIP
- 统编版小学语文三年级上册第六单元 祖国山河 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx VIP
- 建筑施工与环保.pptx VIP
- QBD-CB-UMD-202106150012 曙光DS600 G30系列磁盘阵列用户手册V1.4.pdf VIP
- 汽车式起重机安全技术规程.doc VIP
- 房屋买卖合同书范本下载(2024版).docx VIP
- 超星尔雅《人工智能与科学之美》满分章节测试答案.docx VIP
原创力文档

文档评论(0)