首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.class是在哪里定义的?(是变量还是什么?)

.class是在哪里定义的?(是变量还是什么?)
EN

Stack Overflow用户
提问于 2018-01-22 06:40:27
回答 2查看 1.1K关注 0票数 14

获取类的Class对象有两种方法。

  1. 静态的: 类cls = Object.class;
  2. 从一个实例: 对象ob =新对象();类cls = ob.getClass();

现在我的问题是getClass()Object类中的一个方法,但是.class是什么呢?是变量吗?如果是这样的话,那么它在Java中的定义在哪里?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-22 06:44:43

这是在内部实现的,称为类文本,它由JVM处理。

Java语言规范特别提到了它的术语“令牌”。

因此,.class不仅仅是一个变量,坦率地说,它根本不是一个变量。在更广泛的层面上,您可以将其视为关键字或标记。

https://docs.oracle.com/javase/specs/jls/se9/html/jls-15.html#jls-15.8.2

类文字是一个表达式,由类、接口、数组或基元类型的名称组成,或伪类型的'**.**‘、、和令牌 class**.**组成。 根据当前实例类的定义类加载器(§12.2)定义的类加载器定义的命名类型(或Class ),类文本计算为命名类型(或void)的for对象。

票数 12
EN

Stack Overflow用户

发布于 2018-01-22 13:16:57

该信息驻留在类“file”中,尽管类不需要在文件系统中有一个物理.class文件。JVM负责使它从类定义中可用,就像其他答案声明的那样。

另见:https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48375901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档