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();
java.lang.Class对象相关
猜你喜欢
转载自blog.csdn.net/weixin_43996899/article/details/91986269
今日推荐
周排行