java - Object类是如何生成的?

标签 java compilation

我只是想知道 java.lang.Object、java.lang.String 等类(在 Oracle 提供的 rt.jar 内)是如何从 .java 源文件生成的。我认为,他们的 javac 不可能编译它们。

我尝试编译包含“class Dummy{}”的 Dummy.java

lab@labb:~/Documents$ set PATH=.:$JAVA_HOME/bin

lab@labb:~/Documents$ 设置 CLASSPATH=。

lab@labb:~/Documents$ javac -verbose Dummy.java

[解析开始RegularFileObject[Dummy.java]]

[解析完成12ms]

[源文件搜索路径:.]

[类文件的搜索路径:/usr/lib/jvm/java-7-oracle/jre/lib/resources.jar,/usr/lib/jvm/java-7-oracle/jre/lib/rt.jar jar,/usr/lib/jvm/java-7-oracle/jre/lib/sunrsasign.jar,/usr/lib/jvm/java-7-oracle/jre/lib/jsse.jar,/usr/lib/jvm/java-7-oracle/jre/lib/jce.jar,/usr/lib/jvm/java-7-oracle/jre/lib/charsets.jar,/usr/lib/jvm/java-7-oracle/jre/classes,/usr/lib/jvm/java-7-oracle/jre/lib/ext/sunpkcs11.jar,/usr/lib/jvm/java-7-oracle/jre/lib/ext/dnsns.jar,/usr/lib/jvm/java-7-oracle/jre/lib/ext/zipfs.jar,/usr/lib/jvm/java-7-oracle/jre/lib/ext/localedata.jar,/usr/lib/jvm/java-7-oracle/jre/lib/ext/sunec.jar,/usr/lib/jvm/java-7-oracle/jre/lib/ext/sunjce_provider.jar,.]

[正在加载 ZipFileIndexFileObject[/usr/lib/jvm/java-7-oracle/lib/ct.sym(META-INF/sym/rt.jar/java/lang/Object.class) )]]

[检查虚拟]

[正在加载 ZipFileIndexFileObject[/usr/lib/jvm/java-7-oracle/lib/ct.sym(META-INF/sym/rt.jar/java/lang/AutoCloseable.class) )]]

[写了RegularFileObject[Dummy.class]] [总计131ms]

最佳答案

所有类都可以表示为 Java 代码(如您在此处看到的: http://www.docjar.com/docs/api/java/lang/package-index.html )并由 javac 编译。 Object 是一种特殊情况,当由 VM 加载时,它不会获得父类(super class)。

关于java - Object类是如何生成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12622690/

相关文章:

java - 如何计算经度纬度之间的差异?

java - 使用 Collections 获取 HashMap 中最大值的键

java - 如何使用camel OnException将自定义对象发布到DLQ队列

c++ - 如何编译以目录结构组织的 C++ 文件?

c - 如果0在c程序中编译

c++ - 架构 x86_64 : Compiling problems 的 undefined symbol

java - 我想捕获 InputMismatchException 但它显示编译时错误

java - MySQl 和 autoReconnect=true 仍然给我异常

使用 byte[] 的 Java 快速 atoi

c - 程序的虚拟地址空间有多大?