您的位置:首页 > 编程语言 > Java开发

java的动态绑定--core java读书笔记

2017-04-21 13:52 267 查看

java的动态绑定–core java读书笔记

标签(空格分隔): CSDN博文 CoreJava学习笔记

写于2017年4月21日

最近这周被安排补写文档,特别不喜欢这个东西,心态被扰乱了,所以这周基本没学到啥东西,有些惭愧。

今天又把Core Java翻出来看,发现以前看的是在是太粗略了,很多东西根本没有理解就翻过去了,所以最近的打算就是先把core java和设计模式看完,顺便把毕设也好好弄一弄。这篇文章也是没有经过太多思考就发出来了,就当是一个开始的标记吧。

以后文章呢就现在本地写好,每天一传,做为督促自己学习的方法吧。

java的动态绑定:

对象方法的执行过程:

1、编译器查看对象的声明类型和方法名。

假设调用了x.f(param),且隐式参数x声明为C类的对象。那么编译器会一一列举所有类C中的名字为f的方法和超类中的访问属性为public且名字为f的方法。

到这里,编译器已经获得了所有可能被调用的候选方法。

2、编译查看调用方法时提供的参数类型。

如果在所有名为f的方法中存在一个与提供的参数类型完全匹配,就选择这个方法。这个过程被成为重载解析。

如果编译器没有找到类型匹配的方法,或者经过类型转换后发现有多个方法与之匹配,就会报告一个错误。

到这里编译器已获得需要调用的方法名字和参数类型。

3.采用动态绑定的方式进行调用方法的时候

一定调用与x所应用对象实际类型最合适的方法,假如x的实际类型是D,它是C的子类,如果D中有定义f(String),那么就直接进行调用,没有的话,再去C中寻找f(String)方法,以此类推。

读完这一段,感觉虚拟机的原理确实也很重要,不然就靠这样的记忆,肯定不如直接从底层原理上理解这些实际的操作来的实在。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  读书笔记 java