zoukankan      html  css  js  c++  java
  • JVM系列1:Java内存区域

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

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

    正文

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

     

      Java内存区域如下:

    1

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

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

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

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

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

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

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

            StackOverflow:栈溢出异常

  • 相关阅读:
    中学数学
    XBT Tracker 服务器配置
    【转】>Unity3d动态数据管理(Export AssetBundles)
    [转]MySQL 5.1.56 for Windows XP/Vista/7
    [转]全面理解Unity加载和内存管理
    [转]Unity3D Editor 编辑器简易教程
    Dow falls 97 points, worst showing this year
    [转]Boost库编译后命名方式
    free falling
    01、Direct3D 11 Basics
  • 原文地址:https://www.cnblogs.com/llsblog/p/10627357.html
Copyright © 2011-2022 走看看