方法调用认识①
来源:互联网 发布:脑洞网络用语 编辑:程序博客网 时间:2024/06/08 06:03
1.理解方法调用
x.f(string) 编译器查看对象的声明类型和方法名,然后索引该类中所有名为f的方法以及超类中声明为public 的f方法。至此,编译器找到所有可能被调用的候选方法。
然后编译器根据方法的签名,即显式参数的类型来选择调用的方法。从所有名为f的方法中找到参数类型完全匹配的方法的过程 称为重载解析。
如果方法为private,static,final方法,那么编译器就会准确的知道调用那些方法,这种调用方法称为静态绑定。
相较于上面的静态绑定,程序运行期间,java虚拟机根据实际类型选择最合适的方法调用,称为动态绑定。Java虚拟机根据x的实际类型,找到方法进行调用。
由于每次调用方法都需要进行索引,开销非常大。因此Java虚拟机在运行时为每个类创建了一个方法表。方法表中列出所有方法以及方法签名和所调用的方法。这样一来,调用方法时,虚拟机只要查看这张表就可以了。
阅读全文
0 0
- 方法调用认识①
- 关于java调用方法的认识
- 调用约定的认识
- addEventListener方法的认识
- 认识Arrays.asList方法
- 简简单单认识匿名方法
- 数组和方法认识
- 从头认识java-12.6 接口与类型信息(怎么绕过接口直接调用类的所有方法)
- java方法中传值的认识
- java方法中传值的认识
- 重新认识Activity生命周期方法
- 路由器认识与设置方法
- java 工厂方法初步认识
- 对回归方法的认识
- 路由器认识与设置方法
- 认识考点流解题方法
- 从远程调用框架认识Zookeeper
- 从远程调用框架认识Zookeeper
- NOIP 2015 子串 (DP)
- Kafka集群配置
- 维护集合Ⅰ【无旋Treap数组模板】
- 权限修饰符
- Kafka知识点
- 方法调用认识①
- C++ dijkstra 最短路径算法、top排序、DFS、BFS 示例 C++11
- Redis知识点
- C++ STL之空间配置器(5)---《C++ STL》
- c/c++ 类型限定词volatile
- Zookeeper知识点
- HTML(四) HTML 标记和其属性
- 【算法】【Graph】Reconstruct Itinerary
- 迭代算法