首页 > 编程语言 > 详细

JVM系列1:Java内存区域

时间:2019-03-30 15:40:53      阅读:110      评论:0      收藏:0      [点我收藏+]

  JVM系列主要分享自己都虚拟机的理解,我自学时的知识框架多来源于《深入理解Java虚拟机_JVM高级特性与最佳实践》这本书,感兴趣的朋友可直接去阅读这本书。

  本系列暂定有3部分,它们是学习的重点内容:Java内存区域、垃圾收集、类加载机制。

 

正文

  该篇随笔主要分享下我都Java内存区域的理解,以下是我学习的结果,思维导图。技术分享图片

 

  Java内存区域如下:

技术分享图片

  分为共享区域:方法区、堆,私有区域:虚拟机栈、本地方法栈、程序计数器。他们各自职责如下

  程序计数器:一种上下文指示器,帮助分支、循环、跳转、异常等功能

  虚拟机栈:是方法执行内存模型。执行一个方法会创建栈帧存储局部变量表、操作数栈、动态链接、方法出口等。其中局部变量表存放了编译期可知的各种基本数据、对象引用类型。

  本地方法栈:为Native方法提供的栈

  堆:一般用于存放对象实例,对象实例数据包括对象头,对象体,填充。对象头包含了对象重要信息如:HashCode、GC年龄、锁状态以及指向类对象的指针。

  方法区:存储已被加载的类信息、常量、静态变量。

 

  常见异常:OOM:内存溢出,在堆、栈、方法区都可能发生该异常。

        StackOverflow:栈溢出异常

 

JVM系列1:Java内存区域

原文:https://www.cnblogs.com/llsblog/p/10627357.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!