关于java动态绑定是如何实现的

动态绑定如何实现。网上查了些资料,但是我看的不是特别懂,有木有大佬进行普及下啊#Java工程师#
全部评论
本质上c++动态绑定
点赞 回复 分享
发布于 2017-09-30 11:46
反射
点赞 回复 分享
发布于 2017-09-30 13:12
虚函数表
点赞 回复 分享
发布于 2017-09-30 13:23
请参考深入理解虚拟机
点赞 回复 分享
发布于 2017-09-30 13:29
invokevirtual
点赞 回复 分享
发布于 2017-09-30 20:06
简单的讲就是,每个类(Class对象)加载进内存,会在方法区生成包含方法各种信息的数据结构,并在堆区生成一个java.lang.Class对象,作为访问方法区数据的入口。每个类对象都有一个方法表,里面存放了方法签名等信息,如果子父类含有同样的方法,那么它们在方法区的索引位置会是一样的,如果是接口和接口实现类位置就不一样了。所以,如果是父类作为子类的引用,那么在类解析阶段其实就获得了父方法签名的索引位置,在真正创建对象时,通过指向真正对象的指针从而找到对象的方法表,并根据偏移位置确定调用方法,如果之类方法不存在,往父类上去找。接口和子父类稍有不同,接口会扫描这个方法表找到方法的索引。
点赞 回复 分享
发布于 2017-09-30 23:01

相关推荐

点赞 评论 收藏
分享
03-16 22:00
武汉大学 C++
幸福的小熊猫想要offer:我阿里投的 c++岗,面试官说自己是做 java 的,c++这辈子才有了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务