• 程序计数器PC
  1. 线程私有
  2. 它可以看做是当前线程所执行的字节码的行号指示器
  3. 内存区域中唯一一个没有规定任何OutOfMemoryError的区域
  • Java虚拟机栈
  1. 线程私有
  2. 每个方法在执行的同时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息
  3. 如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverFlowError异常;如虚拟机扩展时仍无法申请到足够的内存,就会抛出OutOfMemoryError异常
  • 本地方法栈

与虚拟机栈非常相似,区别是虚拟机栈为虚拟机执行Java方法服务,而本地方法栈则为虚拟机使用Native方法服务

也会抛出StackOverFlowError和OutOfMemoryError异常

  • Java堆
  1. 线程共享
  2. Java堆是GC管理的主要区域
  3. 在虚拟机启动时创建
  4. 存放对象实例,几乎所有的对象实例数组都在这里分配内存。
  5. 如果在堆中没有内存完成实例分配,并且堆也无法再扩展时,将会抛出OutOfMemoryError异常
  • 方法区
  1. 线程共享
  2. 用于存储已被虚拟机加载的类信息、常量、静态变量、即使编译器编译后的代码等数据
  3. 当方法区无法满足内存分配需求时,将抛出OutOfMemoryError异常
  • 运行时常量池
  1. 是方法区的一部分
  2. 用于存放编译器生成的各种字面量和符号引用
  3. 相对于Class文件常量池的一个重要特征是,具备动态性
  4. 运行时常量池是方法区的一部分,自然受到方法区内存的限制。当常量池无法再申请到内存时会抛出OutOfMemoryError异常

最新文章

  1. 面试题---PHP
  2. 学习使用 SVG 创建材料设计涟漪(Ripple)效果
  3. 数据结构之链表C语言实现以及使用场景分析
  4. OkHttpUtils
  5. 在Raspberry Pi上安装XBMC
  6. DOM this, currentTarget, Target
  7. hdu4708 Rotation Lock Puzzle
  8. USACO Section 1.3 Barn Repair 解题报告
  9. Eclipse配置类似sublime的黑色主题
  10. Error fetching https://gems.ruby-china.org/: bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz) 报错解决办法
  11. 常见RPC开源框架
  12. Android中 实现队列方式处理优先级信息
  13. 20175316盛茂淞 2018-2019-2 《Java程序设计》第6周学习总结
  14. HDU 2516 斐波那契博弈
  15. SpringBoot系统列 3 - 多线程数据处理(ThreadPoolTaskExecutor、DruidDataSource)
  16. 转载:Opencv调整运行窗口图片的大小
  17. 一文学redis操作(记录向)
  18. LINUX添加磁盘
  19. PBR Metallic/Roughness工作流中Albedo与F0的计算方法
  20. I.MX6 Ar8031 device register hacking

热门文章

  1. Git的配置与基本操作
  2. export default{} 和 new Vue()都是什么意思
  3. delegate operator (C# reference) and => operator (C# reference)
  4. 一篇文章让你详细了解何为JSON
  5. web选择文件夹上传
  6. [CF1081H]Palindromic Magic
  7. DDL DML DCL的理解
  8. laravel5.6操作数据curd写法(查询构建器)
  9. druid spring监控配置
  10. 128、TensorFlow元数据MetaData