社区
Java SE
帖子详情
Java虚拟机内存模型
临世驻年
2020-07-23 10:09:20
解释一下Java虚拟机内存模型
...全文
784
2
打赏
收藏
Java虚拟机内存模型
解释一下Java虚拟机内存模型
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
SpiritPoss
2020-07-23
打赏
举报
回复
JVM虚拟机将内存数据分为:
程序计数器虚拟机栈本地方法栈Java堆方法区等部分。程序计数器用于存放下一条运行的指令;虚拟机栈和本地方法栈用于存放函数调用堆栈信息;Java堆用于存放Java程序运行时所需的对象等数据;方法区用于存放程序的类元数据信息。
1、程序计数器
每一个线程都必须有一个独立的程序计数器,用于记录下一条要运行的指令。各个线程之间的计数器互不影响,独立工作;是一块线程私有的内存空间。
如果当前程序正在执行一个Java方法,则程序计数器记录正在执行的Java字节码地址,如果当前线程正在执行一个Native方法,则程序计数器为空。
2、Java虚拟机栈
Java虚拟机栈也是线程的私有空间,它和Java线程在同一时间创建,它保存方法的局部变量、部分结果,并参与方法的调用和返回。
在Java虚拟机规范中,定义了两种异常与栈空间有关:StackOverflowError 和 OutOfMemoryError。
在 HotSpot 虚拟机中,可以使用 -Xss 参数(如:-Xss1M)来设置栈的大小。栈的大小直接决定了函数调用的可达深度。
虚拟机栈在运行时使用一种叫做栈帧的数据结构保存上下文数据。在栈帧中,存放了方法的局部变量表、操作数栈、动态连接方法和返回地址等信息。每一个方法的调用都伴随着栈帧的入栈操作。相应的,方法的返回则表示栈帧的出栈操作。
如果方法调用时,方法的参数和局部变量相对较多,那么栈帧中的局部变量表就会比较大,栈帧会膨胀以满足方法调用所需传递的信息。因此,单个方法调用所需的栈空间大小也会比较多。
bioittang
2020-07-23
打赏
举报
回复
直接搜应该有的吧
Java
虚拟机
面试题全面解析(干货)
Java
虚拟机
(JVM)是
Java
程序运行的核心,它负责在不同操作系统上提供统一的运行环境。对于准备面试或希望深入理解JVM的开发者而言,了解JVM的各个组件和特性是必须的。本文将通过解析
Java
虚拟机
面试题来深入探讨JVM...
Java
虚拟机
规范(
Java
_SE_7).pdf中文版
Java
虚拟机
规范定义了JVM的结构、工作方式以及操作码、类文件格式、
内存模型
、垃圾回收机制等重要方面。
Java
SE 7版的
虚拟机
规范是对之前版本的更新,它详述了
虚拟机
的最新标准,以及如何保证不同的
Java
虚拟机
实现...
Java
虚拟机
规范中文版.pdf
Java
虚拟机
规范详细描述了JVM的工作原理,包括它的体系结构、数据类型、指令集、执行引擎、
内存模型
以及异常处理机制等等。 1. JVM体系结构:JVM包括类加载器、运行时数据区、执行引擎、本地接口和垃圾回收器。类...
JAVA
虚拟机
精讲
《
Java
虚拟机
精讲》以极其精练的语句诠释了HotSpot VM 的方方面面,比如:字节码的编译原理、字节码的内部组成结构、通过源码的方式剖析HotSpot VM 的启动过程和初始化过程、
Java
虚拟机
的运行时内存、垃圾收集算法...
Java
学习入门资料 PPT版本
- **解释性**:源代码先编译成字节码,再由
Java
虚拟机
解释执行,提高了跨平台能力。 - **健壮性**:静态和动态检查、异常处理机制等保障了程序的稳定性和安全性。 - **安全性**:确保系统免受病毒攻击和非法入侵。 -...
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章