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

来源:互联网 发布:男女唱的网络红歌 编辑:程序博客网 时间:2024/06/16 21:42

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)方法,以此类推。
读完这一段,感觉虚拟机的原理确实也很重要,不然就靠这样的记忆,肯定不如直接从底层原理上理解这些实际的操作来的实在。

0 0
原创粉丝点击