Reflection 类<;T>;Java中的类和关键字

Reflection 类<;T>;Java中的类和关键字,reflection,java,Reflection,Java,我有点困惑。Java有一些反射方法可以调用类对象。 但是我想知道java中ClassClass和Class关键字之间有什么联系 Class只是用来将类本身(方法、字段、注释)表示为对象的类,因为java中的一切都是对象类关键字在语言级语法上用于表示实体。 当类加载器将类加载到内存permgen中时(我知道现在没有这样的内存区域),但要将类表示为对象,我们需要一个对象,所以在本例中,class起作用 我说得对吗?请解释一下它是如何工作的 简而言之:在“命令式”上下文中,属性SomeClass.cl

我有点困惑。Java有一些反射方法可以调用
对象。
但是我想知道java中
Class
Class和
Class
关键字之间有什么联系

Class
只是用来将类本身(方法、字段、注释)表示为对象的类,因为java中的一切都是对象<代码>类关键字在语言级语法上用于表示实体。 当类加载器将类加载到内存permgen中时(我知道现在没有这样的内存区域),但要将类表示为对象,我们需要一个对象,所以在本例中,
class
起作用


我说得对吗?请解释一下它是如何工作的

简而言之:在“命令式”上下文中,属性
SomeClass.class
class
的一个实例。类型
Class
SomeClass
类表示为对象(反射)。

引导类加载器的可能副本用于加载这样的类:
Class
object
等。有趣的是类是由本身就是类的
ClassLoader
加载的。。。这就是为什么引导类装入器(通常用本机代码编写)是必要的。尝试
Object.class.getClassLoader()
,它返回null,因为这个类加载器不是用Java编写的。如果您将
.class
替换为
.getClass()
,您的初始示例可能已经编译过了:PSo我是正确的,对吗?类仅用于将类表示为对象?是的。类用于将类表示为对象。这是Java中的类反射。@e109848您编写的任何类都只是一个蓝图,通过它您可以告诉JVM如何构建数据对象。有时,对于复杂的操作,您需要访问此蓝图,无论是修改它还是访问它的一个属性(例如,运行时类文件的路径)。这个类的对象表示是
Class
,其中
T
是类的名称。您可以通过类型中的
.class
语法或实例中的
.getClass()
方法访问此对象表示。