今天在看郑志远 先生的文章《Java运行时多态性的实现》时,突然有个想法,
我猜测jvm在实例化一个类时,是不是在实例中用一个类似string的变量记录了这个对象的类名,或用一个指针引用这个类在堆里的位置。
这样,在定位一个方法时它就可以通过这个变量或引用找到这个类,然后就可以通过reflection找到这个方法,如果没找到它会继续找到这个类的基类。
这样解释方法和接口的多态都是可以的,但具体是不是这样实现,还得参看jvm的实现细节。我现在还没研究过jvm,姑且做个猜想。哈哈。
笑话军事旅游美容女性百态母婴家电游戏互联网财经美女干货家饰健康探索资源娱乐学院 数码美食景区养生手机购车首饰美妆装修情感篇厨房科普动物植物编程百科知道汽车珠宝 健康评测品位娱乐居家情感星座服饰美体奢侈品美容达人亲子图库折扣生活美食花嫁风景 | 首页 |
今天在看郑志远 先生的文章《Java运行时多态性的实现》时,突然有个想法,
我猜测jvm在实例化一个类时,是不是在实例中用一个类似string的变量记录了这个对象的类名,或用一个指针引用这个类在堆里的位置。
这样,在定位一个方法时它就可以通过这个变量或引用找到这个类,然后就可以通过reflection找到这个方法,如果没找到它会继续找到这个类的基类。
这样解释方法和接口的多态都是可以的,但具体是不是这样实现,还得参看jvm的实现细节。我现在还没研究过jvm,姑且做个猜想。哈哈。