我从未专门使用过class literals
。我认为它们主要用于反射api。我想了解类文字可以有多少个实例?它们是instance controlled
(例如辛格尔顿?)吗
Class<String> stringClass = String.class;
class对象(至少在理论上)是在加载类时创建的。每个班只有一个。然而,将其称为singleton是不正确的,因为有多个Class对象,每个对象都用于给定的类,就像可以有多个具有不同值的String对象一样。
请注意,如果由不同的类加载器加载,则可以有两个名为"a.b.c"的不同类对象。这将是两个不同的类(它们甚至可能不相似)和两个截然不同的Class对象。
class由class Loader加载为堆中的Object。
因此,每个类加载器只存在一个类文字实例。
但是,您可以在代码中创建尽可能多的类型类实例。