2

当我们写一个Foo f = new Foo();我们知道JVM调用Defaut的语句时ClassLoader.loadClass(),它返回实例Class,现在我们如何获取我们的Foo实例Class呢?

4

1 回答 1

4

我不完全确定你在问什么,但是如果你问的是当你创建一个类的新实例时执行了什么代码,那么答案是这是 Java 虚拟机的原始操作,并且不涉及任何Java代码。

实例创建的行为由12.5 节指定。创建 Java 语言规范的新类实例

还有一个关于4.10.2.4 的部分。Java 虚拟机规范中的实例初始化方法和新创建的对象,但这并不是那么有趣。

要了解创建对象时实际发生的情况,您需要选择一个 JVM 实现并阅读其源代码。或者,您可能会做大多数 Java 程序员所做的事情,并将其视为一种真正有效的神奇操作!

于 2013-06-28T08:24:59.863 回答