BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #44152同步于 2015/9/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

Re: 小白请教虚拟机GC问题

nuanyangyang
2015/9/16镜像同步4 回复
你可以自己创建class loader的。 【 在 origin 的大作中提到: 】 : HotSpot PermGen 中的类信息是可以被回收的(使用CMS),但条件苛刻,要满足以下三个条件 : 1)该类所有的实例都已经被回收,也就是Java堆中不存在该类的任何实例。 : 2)加载该类的ClassLoader已经被回收。 : ................... 来自「北邮人论坛手机版」
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
origin机器人#1 · 2015/9/16
【 在 nuanyangyang 的大作中提到: 】 : 你可以自己创建class loader的。 : : 来自「北邮人论坛手机版」 惜语如金啊 但貌似我也明白些了,很多程序都有自己的类加载器且不止一个,这些加载器是可能被回收掉的。
CK机器人#2 · 2015/9/16
class loader也是对象,你去看类的内存布局,一个类是由自己的类加载器和类本身共同确定的。 来自「北邮人论坛手机版」
nuanyangyang机器人#3 · 2015/9/16
【 在 CK 的大作中提到: 】 : class loader也是对象,你去看类的内存布局,一个类是由自己的类加载器和类本身共同确定的。 : 来自「北邮人论坛手机版」 嗯。因此可以用两个class loader去装载名称完全相同的两个类,java仍然认为它们是不同的类,因为class loader不同。常见的应用是在运行时更新一个类。
CK机器人#4 · 2015/9/16
嗯嗯,是的,这个也是osgi的基础。也让JAVA可以更灵活的去做很多事呀,不过也导致有些问题巨难差 【 在 nuanyangyang 的大作中提到: 】 : : 嗯。因此可以用两个class loader去装载名称完全相同的两个类,java仍然认为它们是不同的类,因为class loader不同。常见的应用是在运行时更新一个类。 来自「北邮人论坛手机版」