java运行时数据区域
java运行时数据区域也就是jvm的内存结构!!!!
先想一个问题:java运行时数据区域是一个什么东西?
在运行时,将内存区域分为几个不同的区域:
虚拟机栈、本地方法栈、程序计数器、 (线程私有)
程序计数器:用于存储线程所执行的指令的位置
虚拟机栈: 方法执行的时候,会创建栈帧,当创建的栈帧的深度大于虚拟机允许的深度,会出现StackOverflowError,栈溢出异常
(有点像 java内存模型中的,工作内存)
本地方法栈:虚拟机栈与本地方法栈基本一样,不同的是它是调用的本地方法。
(这三个线程私有的部分,都是为了在线程切换回来的时候能够还原线程切换时的工作现场,继续向下执行)
堆、方法区 (线程共享)
堆:用来存放对象 (有点像java内存模型中的 主内存)
方法区:存放类信息、类的静态变量、常量
直接内存:不是虚拟机运行时数据区的一部分!!!!
在介绍堆的时候要详细,年轻代、老年代 回收算法 各内存的比例 以及怎么调整比例都说出来!!!!!
也许会有遗憾,但是不应该在失败之前
浙公网安备 33010602011771号