java.lang.Class对象相关




public class Solution{



public Solution(){

System.out.println("Initializing");

}



static{

System.out.println("static code---");

}



public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {

Solution solution = new Solution();

Solution solution2 = new Solution();

// static 代码快属于类,在类加载时执行完毕,构造方法只在创建对象时运行



Class class1 =  solution.getClass();

Class class2 = solution2.getClass();

System.out.println(class1.getName());

System.out.println(class2.getName());

System.out.println(class1==class2);

// Class 单例模式,每个被加载的类保持一个class对象,不同对象可通过getClass()方法取到同一对象



Class class3 = Solution.class;

System.out.println(class1==class3);



Class class4 = Class.forName("Solution");

System.out.println(class4==class1);

// 获取class对象的三种方式,以上



System.out.println(class1.getClassLoader());

System.out.println(class4.getClassLoader());

ClassLoader classLoader = class1.getClassLoader();

Class class5 = classLoader.loadClass("Solution");

System.out.println(class1==class5);

// 动态加载类两种方式,以上



class1.getClassLoader();

System.out.println(ClassLoader.getSystemClassLoader());

System.out.println(ClassLoader.getSystemClassLoader()==class1.getClassLoader());



myClassLoader myClassLoader = new myClassLoader();

猜你喜欢

转载自blog.csdn.net/weixin_43996899/article/details/91986269