• JVM系列1:Java内存区域


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

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

    正文

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

     

      Java内存区域如下:

    1

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

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

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

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

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

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

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

            StackOverflow:栈溢出异常

  • 相关阅读:
    Fraction to Recurring Decimal
    Compare Version Numbers
    回溯法 -数据结构与算法
    Maximum Gap
    STL——迭代器的概念
    STL——内存基本处理工具
    STL——空间的配置和释放std::alloc(第一级配置器和第二级配置器)
    careercup-中等难度 17.12
    careercup-中等难度 17.11
    careercup-中等难度 17.9
  • 原文地址:https://www.cnblogs.com/llsblog/p/10627357.html
Copyright © 2020-2023  润新知