什么是Java中的类文字?
从Java教程 :
最后,还有一种特殊的字面types,通过types名称和附加的“
.class”形成。 例如,String.class。 这是指表示types本身的对象(types为Class)。
这个文字可以分配给什么types的variables?
请尽可能举个小例子。
 Class<String> c = String.class; 
 查看Javadoc的java.lang.Class ,看看你能用这些小家伙做些什么 – 主要与反思有关 
要理解这一点,你必须明白, String是Class类的一个实例(对象)。 string文字(例如“我是一个string”)是表示类String的实例(对象)的符号,而类文字(例如Hashtable.class)是表示类Class的实例的符号。
感谢这里的其他很好的答案,你知道它是什么,但是这里有一个典型的使用例子,可以澄清:
  private static Logger log = Logger.getLogger(YourClassHere.class); 
 正如代码所示,这是我们初始化一个日志框架的一个线路(在这个例子中,我使用的是org.apache.log4j包,但是原理扩展到其他框架)。  getLogger()方法需要一个类文字,以便它知道它正在logging什么(即当前对象的类)。 
根据JLS
15.8.2类文字
类文字是一个expression式,由一个类,接口,数组或者基本types的名字组成,后跟一个
.和令牌class。 类文字的types是Class。 它根据当前实例的类的定义类加载器的定义,对指定types(或void)的Class对象进行求值。
一些常见的用法可以在Class Literals中find, 如Runtime-Type Tokens 。
 文字本身就是MyClass 。 如果你写了MyClass.class你会得到一个对类对象的引用。 如果您编写new MyClass() ,它将使用文字来获取MyClass.class获得的类对象的实例。 从实例中,通过调用myClassInstance.getClass()获得相同的类对象。 
我不是100%确定,但文字本身不能被分配给任何variables。 你可以做的是获取类的string的名称,并使用reflection框架来创build一个实例。
在例子中是这样的:
 Class myClass = MyClass.class 
要么
 MyClass.class.getResourceAsStream("config.properties"); 
 要理解这一点,你必须明白String是它的superclass (parent class) Object一个instance (object) 。 
  class String的instance (object)的值是一个String literal (例如"I am a string." ): 
 class | instance (object) | literal ------------------------------------------------ String | instance_name = | "I am a string." 
 而class Object的instance (object)的值是一个Class literal – (例如Hashtable.class ),它引用class Hashtable的instance (object) 
 class | instance (object) | literal ------------------------------------------------ Hashtable | instance_name | Hashtable. 
 当JVM加载你的应用程序类时,它用java.class.Class对象存储它们。 所以,在内存中通常有几个Class实例代表你的类。 所以你可以做这样的事情: 
 Class<Bicycle> bicycleClass = Bicycle.class; // returns the object storing your Bicycle class bicycleClass.getName(); // returns your class name bicycleClass.getDeclaredMethods(); // returns your (declared) class methods