`
JavaFans
  • 浏览: 88918 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java JVM里面如何实现多态的?

阅读更多
例如在C++里面有virtual table这个东西来实现;不知道Java 的JVM里面是怎样的一个实现机制?
请问有没有这方面的书籍或者解释?
谢谢。

我的猜测可能是,根据当前的object instance所属的class,把这些class全部找出来,然后从里面找到一个定义了该方法的最特别的类(也就是类结构层次上面最底层的那个类),因为Java里面默认是会覆盖掉父类的方法的。
分享到:
评论
1 楼 buaawhl 2006-11-19  

JVM 的 invokevirtual 指令是用来实现多态的。

http://mrl.nyu.edu/~meyer/jvmref/ref--35.html

工作工程描述,就是你描述的那样。
基本数据结构应该和 c++ virtual table 一样。

相关推荐

    java的编译时多态和运行时多态

    Java 编译时多态和运行时多态是 Java 语言中两个重要的概念,它们都是多态性的实现方式,但它们在实现机制和应用场景上有所不同。 编译时多态 编译时多态是指在编译期根据参数列表的不同来区分不同的函数,这时...

    java中多态的内存分析

    此外,Java中的接口也是实现多态的一种方式,通过实现接口,类可以拥有多个行为,这被称为接口多态。例如: ```java interface Soundable { void sound(); } class Animal implements Soundable { @Override ...

    深入Java核心Java中多态的实现机制.pdf

    在深入探讨Java中多态的实现机制之前,我们需要明确多态的概念及其在编程语言中的重要性。多态是面向对象编程的核心概念之一,它允许我们使用一个通用的接口来指定不同类型的对象。具体到Java编程语言中,多态性表现...

    java面试纯基础,基础牢固面试稳过

    什么是多态?请举例说明。 接口和抽象类有什么区别? 异常处理 什么是异常?Java 中有哪些类型的异常? 如何自定义异常? 集合框架 Java 中的 List、Set 和 Map 有什么区别? ArrayList 和 LinkedList 的性能差异是...

    C++和Java多态的区别

    Java中的多态也是通过虚方法调用来实现的,但是其实现机制与C++有所不同。Java的多态性主要依赖于方法表(method table),并通过JVM来管理。 **方法表(method table)**: - 每个类都有一个方法表,用于存储该类...

    从虚拟机角度看Java多态->(重写override)的实现原理

    这里我们将深入探讨从虚拟机(JVM)的角度来看,Java如何通过方法重写来实现多态。 首先,理解Java的类加载机制对于解析多态性至关重要。当Java程序运行时,JVM会负责加载类文件。这个过程分为加载、验证、准备、...

    200道Java面试常见题目.pdf

    多态的实现方式有哪些? * 什么是Java的异常处理?Java中有哪些异常处理方式? * 什么是Java的反射机制?反射机制有什么应用场景? * 什么是Java的注解?注解有哪些常见的应用场景? JVM知识点: * 什么是JVM?JVM...

    java 多态 经典讲解

    Java的多态是实现代码灵活、可维护和可扩展的关键。通过向上类型转换、方法绑定、抽象类和方法、以及对继承设计的深入理解,开发者能够构建出更加健壮、易于扩展的应用程序。多态不仅仅是语法糖,它是面向对象编程...

    从JVM角度看Java多态

    首先,明确一下,Java多态的三个必要条件:  1、 继承  2、 子类重写父类方法  3、 父类引用指向子类对象  然后看一个例子 package test.xing; class Father{ protected int age; public Father(){ age...

    java JVM 详解

    JVM 规范是 Java 语言的核心规范,定义了 JVM 的行为和实现细节。JVM 规范主要包括以下几个方面: * 字节码文件格式:定义了字节码文件的格式和结构。 * JVM 指令:定义了 JVM 的指令集和执行机制。 * 类加载机制:...

    JAVA中类的多态的理解.pdf

    文件内容没有直接体现这一概念,但它是多态的实现基础,确保了即便是在编译时不确定对象的具体类型,运行时也能够调用正确的方法。 总结来说,Java中的多态允许父类类型的引用变量指向子类的对象,根据对象的实际...

    继承和多态的相关Java源码下载

    9. **JVM的多态实现**: Java的多态性在运行时通过动态绑定(也称为晚期绑定或虚方法调用)来实现。这意味着调用的方法取决于对象的实际类型,而不是引用的类型。 10. **设计模式与继承多态**: 继承和多态是很多...

    Java多态(动力节点Java学院整理)_.docx

    6. **多态与动态绑定**:在Java中,多态的实现依赖于动态绑定机制。这意味着在运行时,JVM会根据对象的实际类型决定调用哪个重写的方法,而不是在编译时就确定。 7. **实际应用示例**:比如在图形库设计中,可以有...

    Java进阶教程解密JVM视频教程

    掌握条件分支、循环控制、异常处理、构造方法在字节码级别的实现原理,利用HSDB工具理解多态原理。还会涉及从编译期的语法糖处理,到类加载的各个阶段,直至运行期的各项优化的详细讲解。最后不要错过方法反射优化的...

    jvm特性与java特性

    JVM在不同的操作系统上实现,使得Java字节码能够在不同的系统上运行而无需修改。这一特性是通过JVM解释执行或即时编译(JIT)字节码实现的。 2. 内存管理:JVM内部有一套完整的垃圾收集机制(Garbage Collection, ...

    Java面试题.doc,Java面试题.doc

    如何实现多态? 多态是面向对象编程的一个重要特性,它允许我们使用父类引用指向子类对象,这样在调用方法时,可以根据实际对象的类型来执行相应的子类方法。Java 中实现多态主要依靠接口和继承。通过继承,子类...

    计算机和JAVA 面试题大全

    如何实现多态? - 讨论设计模式,如单例、工厂、装饰器等,以及它们在实际项目中的应用。 7. **字符串处理** - 探索String、StringBuilder和StringBuffer的性能差异。 - 面试题:如何反转一个字符串? 8. **...

    java常见面试题大集合

    - 什么是多态?多态性在Java中如何体现? 8. **集合框架** - ArrayList和LinkedList的区别是什么?何时选择哪种? - 解释HashMap和TreeMap的工作原理。 9. **泛型** - 泛型在Java中的作用是什么?为什么引入...

    从虚拟机指令执行的角度分析JAVA中多态的实现原理.docx

    多态的实现原理主要依赖于Java虚拟机(JVM)在运行时如何解析和执行方法。在这个过程中,方法的重载(Overload)和重写(Override)是两个关键的概念,它们与方法的分派密切相关。 1. **方法的重载(Overload)**:...

    Java(JVM)虚拟机结构基础(转自Java研究组织)

    此外,JVM也支持多态性,允许在运行时确定对象的具体类型,从而实现动态绑定和多态调用。 #### 总结 理解JVM的结构与工作原理对于优化Java应用程序的性能、解决内存泄漏等问题具有重要意义。通过掌握JVM的关键概念...

Global site tag (gtag.js) - Google Analytics