博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA程序员养成计划之JVM学习笔记(1)-运行时数据区
阅读量:4226 次
发布时间:2019-05-26

本文共 578 字,大约阅读时间需要 1 分钟。

本文主要对JVM运行时数据区进行描述,属于JVM基础部分

持续更新中… …

1.逻辑结构

关于运行时数据区的逻辑结构,网上已经有很多的说明了,这里引用其中一张以作阐释:

运行时数据区逻辑结构

2.分区

  • 运行时数据区总共分为两个大部分,即由线程所共享的堆区、方法区,以及每个线程私有的虚拟机栈、程序计数器、本地方法栈。
  • 【堆区】堆区为JVM垃圾回收的主要部分,涉及到了新生代、老年代,其中新生代又有Eden区和两个Survivor区的划分。无论新生代还是老年代,均是存储实例化对象的区域,之所以有进一步划分,都是为了更方便,更有效的进行不同种类的垃圾回收;
  • 【方法区】方法区也是由线程所共享的,有的地方也叫它为永久代,用于存储类信息(如类的种类、访问权限、全限定名、直接父类的全限定名、直接接口的全限定名列表等等),常量,静态变量,编译后代码等;
  • 【程序计数器】就如同它名字一样,用于标识程序运行的行号指示器。
  • 【虚拟机栈】线程的运行可以看成是栈帧的压栈和出栈,帧栈包括局部变量表、操作数栈、动态链接、方法返回地址、附加信息等,这些都存储于jvm的虚拟机栈中,为java程序运行提供服务
  • 【本地方法栈】本地方法栈作用和虚拟机栈类似,不同点在于它是为Java Native(即本地方法,可能非java)方法提供服务。

3.参考资料

[1].《深入理解JAVA虚拟机》第二版,周志明著

你可能感兴趣的文章
剑指Offer——字符串中第一个只出现一次的字符
查看>>
Linux 中的硬链接与软连接有什么区别
查看>>
Python 图像处理库
查看>>
使用PHPMailer-master发送邮件
查看>>
利用smtp协议实现命令行发送邮件
查看>>
利用php的mail()函数发送邮件
查看>>
(一).postman学习——前期知识准备
查看>>
qt入门级使用
查看>>
Web Stotage——本地储存详解及案例
查看>>
File Reader文件操作
查看>>
地理位置服务——navigator.geolocation
查看>>
地理位置服务——百度地图API
查看>>
js拖放事件详解及实战
查看>>
js字符串常用属性与方法
查看>>
C++递归算法案例
查看>>
C++算法——异或运算解决出现次数问题
查看>>
C++数据结构——顺序栈(基本代码实现与案例)
查看>>
C++数据结构——链队列(基本代码实现与案例)
查看>>
C++数据结构——顺序表的查找(简单顺序查找、有序表的二分查找、索引顺序的查找)
查看>>
Hive 常用统计查询语句
查看>>