字节码中是否包含java导入类

字节码中是否包含java导入类,java,Java,这是一个由两部分组成的关于java导入的问题 编译时,输出类文件中是否包含导入的类 导入的类需要在jar中可用还是在运行时作为类文件可用 1) 编译时,输出类文件中是否包含导入的类 没有 2) 导入的类需要在jar中可用还是在运行时作为类文件可用 对 (但它可能位于导入类之外的另一个jar文件中) 因此,运行时类可能与编译时类不同,或者是否进行了一些检查以确保它们相同麦库尔 对 它可以是该类的不同版本,只要它具有相同的全限定名,并且对其调用的方法具有相同的签名 这是通过后期绑定实现的OO语言多

这是一个由两部分组成的关于java导入的问题

  • 编译时,输出类文件中是否包含导入的类

  • 导入的类需要在jar中可用还是在运行时作为类文件可用

  • 1) 编译时,输出类文件中是否包含导入的类

    没有

    2) 导入的类需要在jar中可用还是在运行时作为类文件可用

    (但它可能位于导入类之外的另一个
    jar
    文件中)



    因此,运行时类可能与编译时类不同,或者是否进行了一些检查以确保它们相同麦库尔

    它可以是该类的不同版本,只要它具有相同的全限定名,并且对其调用的方法具有相同的签名


    这是通过后期绑定实现的OO语言多态性功能的一部分。

    因此运行时类可能与编译时类不同,或者是否进行了一些检查以确保它们相同?@mccool取决于您试图实现的目标。如果用新版本替换jar中的类,并且新版本用新方法替换某些方法(名称或参数不同),JVM将抛出相应的异常。如果某些依赖项需要某个版本的其他依赖项,则通常会发生这种情况,尽管您提供了不同的依赖项(=JAR-hell),因此编译器生成的字节码中必须有一些对类的简短描述,但理论上运行时可以运行一个在其详细代码中不同的方法?谢谢,我在这个论坛上问了一个开场白,因为我想不起来在我读过的任何java书籍或教程中都有解释在代码中不使用任何
    数据
    只会发出编译器警告,不需要运行时出现
    my.package.Data
    类。