why oop-klass 模型

2019-03-01 13:05:09 +08:00
 Slogen
Java 中为啥要使用 oop-klass 模型?
我再网上搜了一下原因都是说

这是因为 HotSopt JVM 的设计者不想让每个对象中都含有一个 vtable (虚函数表),所以就把对象模型拆成 klass 和 oop,其中 oop 中不含有任何虚函数,而 klass 就含有虚函数表,可以进行 method dispatch。

但是实际上,每个对象都只是拥有一个指向 vtable(虚函数表)的指针 vptr,同一个类的实例化对象指向的 vtable 都是同一个。

采用 oop-klass 对象模型的话,相当于每个 Java 对象都有一个指向 Class 对象的指针,然后 Class 对象有一个 vptr 指向 vtable,这样不是更绕了吗?
1054 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/539985

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX