现阶段对ClassLoader的困惑

1.由于CLASSLOADER是DELEGATE模式,加载一个类时总是问一下父CLASSLOADER是否加载了该类,所以你更新了一个CLASS文件时你再加载入来时由于父CLASSLOADER命名空间中已有了该类的,所以不加载新的CLASS。如何加载新的CLASS文件?我找到了一个方法,在工程的CLASSPATH下不要用该类的CLASS文件,定义一个CUSTOM CLASSLOADER,每次加载新的CLASS时都新建一个CUSTOM CLASSLOADER以避免相同命名空间下重复导致不加载新的CLASS文件。这样的做法是把一个CLASS放到了不同的CLASSLOADER命名空间去了,太多重复了,会导致内存不足。有啥方法呢?接着就有下疑点:

 

2.线程的CONTEXT能打破DELEGATE,具体来说没实践过,资料上也说得模糊。

 

 

《inside the jvm》的一些语录:

Once a Java virtual machine has loaded a class named Volcano into a particular name-space, for example, it is impossible to load a different class named Volcano into that same name-space;

 

 

Although you can grant special access privileges between types belonging to the same package by giving members protected or package access, this special access is granted to members of the same package at runtime only if they were loaded by the same class loader.

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值