首先第一种获取类的字节码文件对象方式: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中的代码