Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

JVM与性能优化知识点整理 PDF 下载


分享到:
时间:2022-01-29 09:47来源:http://www.java1234.com 作者:转载  侵权举报
JVM与性能优化知识点整理 PDF 下载
失效链接处理
JVM与性能优化知识点整理 PDF 下载

 
本站整理下载:
提取码:oqw5 
 
 
相关截图:
 
主要内容:

2.Java 栈(线程私有)
Java 栈也称作虚拟机栈(Java Vitual Machine Stack)
Java 栈中存放的是一个个的栈帧, 每个栈帧对应一个被调用的方法,在栈帧中包括 局
部变量表、操作数栈、 指向当前方法所属的类的运行时常量池的引用、 方法返回地址、 额
外的附加信息。当线程执行一个方法时,就会随之创建一个对应的栈帧,并将建立的栈帧压
栈。当方法执行完毕之后,便会将栈帧出栈。因此可知,线程 当前执行的方法所对应的栈帧
必于 定位于 Java 栈的顶部。
局部变量表,用来 存储方法中的局部变量(包括在方法中 声明的非静态变量以及函数
形参)。对于 基本数据类型的变量,则 直接存储它的值,对于 引用类型的变量,则 存的是
指向 对象的 引用。局部变量表的大小在编译器就可以确定其大小了,因此在程序执行期间局
部变量表的大小是不会改变的。
存储内容:引用对象,returnAddress 类型。Long 和 double 类型占用 2 个局部变量空间,
其余的数据类型占据一个。局部变量表空间在编译期间完成分配。
操作数栈,栈最典型的一个应用就是用 来对表达式求值。想想一个线程执行方法的过程
中,实际上就是不断执行语句的过程,而归根到底就是进行计算的过程。因此可以这么说,
程序中的 所有计算过程都是在借助于 操作数栈来完成的。
指向运行时常量池的引用,因为在方法执行的过程中有可能需要用到类中的常量,所以
必须要有一个引用指向运行时常量。
方法返回地址,当一个方法执行完毕之后,要返回之前调用它的地方( 参考汇编),因
此在栈帧中必须保存一个方法返回地址。
由于每个线程正在执行的方法可能不同,因此每个线程都会有一个自己的 Java 栈 线程
私有,互不干扰。
异常情况:
1.栈深度大于已有深度:StackOverflowError
2.可扩展深度大于能够申请的内存:OutOfMemoryError
3. 本地方法栈(线程私有)
本地方法栈与 Java 栈的作用和原理非常相似。区别只不过是 Java 栈是为行 执行 Java
方法服务的,而 本地方法栈则是为 执行本地方法 (Native Method ) 服务的。在 JVM 规
范中,并没有对本地方发展的具体实现方法以及数据结构作强制规定,虚拟机可以自由实现
它。在 HotSopt 虚拟机中直接就把本地方法栈和 Java 栈合二为一。
 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐