Java的Class类是类的类吗?

善良超锅锅 2014-03-12 03:12:36
不能理解Class类是什么。

好像每一个基本数据类型和引用类型,包括自己定义的类,都会有一个对象的Class类对象。这个对象负责管理关于这个类的元信息?
创建一个类的实例的时候是它的Class类对象帮忙创建的?

每个类的Class类对象在类被第一次加载时被虚拟机创建?

Class类的信息记录在.class文件中吗?


那么Class类对象时管理者?
...全文
322 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码间的舞者 2014-03-13
  • 打赏
  • 举报
回复
楼主以前是学C的?
momoaiyanzi 2014-03-13
  • 打赏
  • 举报
回复
Class是一个普通的类,和class文件有密切关联。可以了解一下classloader机制。
杨丰有 2014-03-13
  • 打赏
  • 举报
回复
打个比方吧,“人”是一个类,“鸟”是一个类,“学生”是“人”的一个实例,即对象,“喜鹊”是“鸟”的一个实例,即对象,这个应该很好理解吧。学习java的都知道,一切皆对象,那么上面说的“人类”是不是java中的“类”的一个对象,java的“类”也是一个东西啊,所以也要抽象成一个类,那么用什么表示,java用的就是Class表示。不知道楼主能理解吗?
乔不思 2014-03-12
  • 打赏
  • 举报
回复
四楼说的对 他是 类型,是Type接口的子类
普凡 2014-03-12
  • 打赏
  • 举报
回复
创建一个类的实例的时候是它的Class类对象帮忙创建的? :不是,但是会去Class里边获取类相关信息 每个类的Class类对象在类被第一次加载时被虚拟机创建? :类在第一次被加载的时候,JVM会创建一个Class实例 Class类的信息记录在.class文件中吗? :所有类信息都记录在class里边,因为class就是编译好的字节码存储格式 那么Class类对象时管理者? :他就是一个普通对象,只不过存储的是类的相关信息,当然由JVM创建,自然由JVM管理,顺便说下类的加载步骤,楼主自己再深入看下或许有帮助(加载--验证--准备--解析--初始化--使用--卸载)
普凡 2014-03-12
  • 打赏
  • 举报
回复
每个类对应一个Class,他是类的相关信息,因为程序运行时可能会用到
threenewbee 2014-03-12
  • 打赏
  • 举报
回复
不是类的类,而是类型的类。 相当于.NET里的 Type
善良超锅锅 2014-03-12
  • 打赏
  • 举报
回复
有人解答我提的那几个问题吗?
-江沐风- 2014-03-12
  • 打赏
  • 举报
回复
万事万物皆对象! 门: 门上的: 铁门:
villagehead 2014-03-12
  • 打赏
  • 举报
回复
看你的标题有点累,呵呵 下面这句话是java api文档里描述Class类的。可能对你的理解有帮助。括号里是我加的 (Class class is)Instances of the class Class represent classes and interfaces in a running Java application. 也就是说是“在java运行期间用来描述某个对象的“类或接口”的对象” 一般aObject.getClass()都能取到这个对象的类或者接口 可以用来在运行期进行一些"对于这个对象的,类一级别"的操作, 比如找到这个对象(所属于的类)的某个方法,然后调用, 等等等等。 大概可以理解为运行期的一个对象外面的一层包装, 这层包装写明了这个对象所属的类或者实现的接口。 别人(别的程序)可以根据这些包装信息, 在运行时“干预”这个对象的行为 一般在使用反射机制的时候用的比较多。 说的不一定对,就是抢个前排 good luck

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧