java jvm内存

java JVM运行时数据区    ------来自深入理解java虚拟机一书......

程序计数器:他在里面应该是最小的内存块了,他是当前线程所执行的字节码的执行指示器,字节码解释器就是通过这个计数器来选取下一条执行命令的    是每个线程私有的  比如多线程 一个线程冻结 醒来之后会接着没完成的工作继续 就是他来控制的 


VM stack  栈 :存储基本类型和对象引用,存储速度仅次于存储器,属于每个线程私有,基本类型都占一个局部变量空间;long double因为64位 占两个


Native Method Stack :和VM Stack的作用相似,只是服务的对象不同,VM Stack服务Java方法,它服务JVM使用到的本地方法


Heap  堆:最大的一块内存块,所有线程共享,对象实例 数组都存在这里;是GC(垃圾管理机制)的主要管理区;

 如果从内存回收角度看   Heap 细分为新生代  老生代  新生代就是刚实例的对象实例存储  当内存满了旧的对象就会进入老生代;一般是老生代被回收;


Method Area  方法区:  jvm加载的类的信息 常量 静态变量 都在这里;也是线程共享的;

-----Java 虚拟机规定将它描述为一堆的一个逻辑部分,但他有个别名  Non-Heap  非堆  为的就是与堆区分开;


运行常量池:是方法区的一部分,   class文件的版本 字段 方法 接口 等描述信息存在方法去区,而在编译期生成的各种字面量和符号引用就存在这里;它具备动态性  , 不一定要编译起才可以产生  ,在运行的时候 也可以人为加入   通过 String类的intern()方等;



内存分析也不是很深  也许有些地方理解错了 有看见的可以讲解下  其实每一段时间 回过头看那些概念 理论什么的都是不同的理解






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值