JVM技术

∥☆過路亽.° 提交于 2020-02-14 00:16:08

Class对象

另见:《深入理解Java虚拟机 JVM高级特性与最佳实践 第2版》=> 第7章 虚拟机类加载机制

        一旦类被加载了到了内存中,那么不论通过哪种方式获得该类的Class对象,它们返回的都是指向同一个java堆地址(对于HotSpot是方法区)上的Class引用。

package org.test.a;

class Cat{
    static {
        System.out.println("static cat");
    }
}

public class Demo {
    public static void main(String[] args) throws ClassNotFoundException {
        Class c1 = Cat.class;
        Class c2 = new Cat().getClass();
        Class c3 = new Cat().getClass();
        Class c4 = Class.forName("org.test.a.Cat");
        System.out.println(c1 == c2);
        System.out.println(c2 == c3);
        System.out.println(c3 == c4);
    }
}

输出结果:

static cat
true
true
true
 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!