码迷,mamicode.com
首页 > 其他好文 > 详细

JVM - 内存管理

时间:2019-05-26 17:41:30      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:string   new   stack   方法区   erro   对象   类信息   分配   运行时   

JVM的内存管理主要分为两大块,每一块里面也会分为各自的部分

1. 线程共享区 - 这个等于所有线程,共享的一些内容

  • 程序计算器 - 这个就是程序运行时的一个代码读取器,用于管理和记录当前运行的代码
  • 栈 
    • Java虚拟机栈,方法执行的动态内存模型,每一个方法执行都会创建一个栈,用于记录局部变量表,操作数栈,动态链接,方法出口等,局部变量表在编译的过程中,已经分配好内存,在运行期间是不会改变局部变量的大小,一般如果遇到死循环,都会出现StackOverFlowError
    • 本地方法栈,与Java虚拟机栈差不多,区别是,Java虚拟机为JAVA 方法服务,而本地方法栈,就是提供native方法服务  

2. 线程独占区 - 这个等于线程内,自己独有的一些内容

  • 堆 - 存放实例对象,是垃圾回收最主要的区域
  • 方法区 - 加载的类信息,常量,静态变量,即时编译器编译后的代码, 方法区里面有一个常量池
    • 运行时常量池 - "abc"这样的创建字符串就会存放在常量池当中,如果new String("abc")就会存放在堆中

 

JVM - 内存管理

标签:string   new   stack   方法区   erro   对象   类信息   分配   运行时   

原文地址:https://www.cnblogs.com/oscar1987121/p/10926577.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!