反射与获取类的字节码文件 系统加载器

首先第一种获取类的字节码文件对象方式:Class.forName

Class<?> cl=Class.forName(“com.cc.Student.Student”);
这一句代码会输出
System.out.println(cl);会输出static代码块中的语句 但是不会new对象 调构造方法
然后再用cl.newInstance()方法 就相当于创建了一个对象 调用构造方法

第二种获取类的字节码文件对象方式:Class.forName 通过对象getClass
Student s=new Student();//这一句话就调用了Student的所有方法 构造+其他 Class stu=s.getClass();//输出stu结果 Class com.cc.Student.Student

//3.获取类的字节码文件对象方式二:方式四与方式一的区别
Class<?> st=Class.forName(“com.cc.Student.Student”);//及时加载 但是不new对象
System.out.println("-----------");

	Class st1=Student.class;
	Student s1=(Student) st1.newInstance();//这个new对象 执行构造方法其他的不执行

//4.获取字节码文件对象方式四:URLClassLoader
首先我们要创建一个URL存放jar包地址
URL url=new URL(“http://127.0.0.1:8080/jarbao/st.jar”);
然后创建一个数组
URL[] urls={url};//这里没搞清楚为什么要用数组装一个地址 可能是一个地址jar包有多个class组成
URLClassLoader urlClassLoader=new URLClassLoader(urls);
Class<?> stu=urlClassLoader.loadeClass(“输入Student地址 com.cc.Student.Student”);// stu的值就是Student的位置了
然后再调用stu.newInteface();调用构造方法 这个并且调用static中的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值