Slogen
V2EX  ›  问与答

why oop-klass 模型

  •  
  •   Slogen · Mar 1, 2019 · 1562 views
    This topic created in 2657 days ago, the information mentioned may be changed or developed.
    Java 中为啥要使用 oop-klass 模型?
    我再网上搜了一下原因都是说

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

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

    采用 oop-klass 对象模型的话,相当于每个 Java 对象都有一个指向 Class 对象的指针,然后 Class 对象有一个 vptr 指向 vtable,这样不是更绕了吗?
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1654 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:39 · PVG 00:39 · LAX 09:39 · JFK 12:39
    ♥ Do have faith in what you're doing.