how to load class in jvm?

本文介绍了Java中类加载器的工作原理,包括类加载的过程、类的继承关系及如何避免重复加载相同的类。阐述了Class.forName方法在类加载过程中的作用,并解释了类加载器如何搜索类文件、组装字节码以及创建类对象。
1, class loader could inherit the classes object from its parent class loader, e.g. bootstrap class loader.
2, when use loader to load class,
e.g. Class.forName("Foo");
it will check the class is existed or not. if yes, stop load.
else will go on the loading process:
search the class file from classpath
invoke loadClass() method: assemble the arrays of bytes into the classFile structure.[p.s. it could delegate the loading to another class loader]
then, invoke defineClass() method, create the class object from the classFile structure.

Q:
1, one class only could be loaded once in one class loader
2, In one jvm, different class loaders maybe have different class pool

reference:
http://books.google.com/books?id=Ojk25QoiTrYC&pg=PA8&lpg=PA8&dq=Loading+Linking+Initializing&source=bl&ots=RI4lZ2THTG&sig=YrF_6S_inr4eV72vEBfKMU53fv8&hl=en&ei=DqbxSvjHEaGG6wOZ-Ki7Bg&sa=X&oi=book_result&ct=result&resnum=7&ved=0CCUQ6AEwBg#v=onepage&q=Loading%20Linking%20Initializing&f=false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值