V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Slogen
V2EX  ›  问与答

why oop-klass 模型

  •  
  •   Slogen · 2019-03-01 13:05:09 +08:00 · 1072 次点击
    这是一个创建于 2121 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Java 中为啥要使用 oop-klass 模型?
    我再网上搜了一下原因都是说

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

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

    采用 oop-klass 对象模型的话,相当于每个 Java 对象都有一个指向 Class 对象的指针,然后 Class 对象有一个 vptr 指向 vtable,这样不是更绕了吗?
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   988 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:38 · PVG 04:38 · LAX 12:38 · JFK 15:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.