关于jvm的三个类加载器以及jar包的生成

package com.cgm.invokeclass;

import java.lang.reflect.Method;
/*
* 关于动态代理的两个核心类
* 1.Proxy
* 用来创建给定接口的子类,在内存中动态创建 $proxy() 执行一次
* 2.InvicationHandler 执行句柄。。在执行时可以获取被代理类的反射。 执行多次,用户的每一次调用都会被这个句柄所拦截
*
* 3.关于类加载器 有3
* 1 BootStrapClassLoader 根类加载器 ----加载jdk下rt.jar
* 2 ExtClassloader java扩展类加载器---- jdk下 的 ext文件夹下了类
* 3 AppClassLoader----加载系统的类 我们自己写的类 Web_info下 class文件夹下的类
* 因为jdk的父类委托机制 任务由下往上 委托执行 下列代码证明
*
* 如何用cmd给class打jar包
* 如把包 com/cgm/ss/VBBB.class
* copy到某个目录下 D:a目录----》
* 开cmd 到 D:\a\com>cd..
* D:\a>.jar -vcf aa.jar com.*
*
*/
public class ProxyDemo {
public static void main(String[] args) throws Exception {
ProxyDemo p=new ProxyDemo();
System.out.println(p.getClass().getClassLoader());
System.out.println(ProxyDemo.class.getClassLoader()); //和上面同一个内存地址 应该是 由AppClassLoader加载
System.out.println(ProxyDemo.class.getClassLoader().getParent());//ExtClassLoader 父类
System.out.println(ProxyDemo.class.getClassLoader().getParent().getParent()); //返回null,跟类加载器不允许使用
System.out.println(String.class.getClassLoader()); //取得根类加载器 因为String是jre下rt.jar的方法
}
@Override
public String toString() {

return "你好朋友";
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值