关于jvm的几点思考

1,一个java程序占用着一个jvm的实例,占用着一个进程

2,(一)jvm里面的堆区是先进后出的结构,主要是存java的8个包装类型,也可以引用堆区里面的对象,堆的数据当没有作用域的时候自动释放,不经过GC,同时,栈区的数据存在共享机制,int a =1 ; int b =1,对于b,首先会扫描栈区有没有1,如果有1,就共享出这个数据,而且不会互相影响,没有则会创建一个新的数据区

(二)jvm里面的堆区,是先进先出的数据结构,主要是用来存对象和数组的,栈区有引用指向堆区,这就是指针,当堆区里面的对象没有引用的时候,就是成为垃圾,但是这个垃圾何时回收,是看GC机制的。

3,GC只是回收堆区和栈的方法区里面的数据,数据区的数据是自动释放的。按年代来划分GC回收,可以分为新生代(伊甸园和两个幸存者空间,两个幸存者空间不能同时为空),老年代,和持久代,一开始的对象会被放在新生代,新生代里面的GC比老年代的频率多很多,但是老年代的GC会比新生代长很多,老年代里面有card_table,指向新生代的对象,因而不用搜整一个表。

下次了解GC的算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值