有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么在只更改符号名称后会得到不同的“类”文件?

当我只更改相应“Java”文件中的符号名(类、接口、函数或变量)时,为什么Java字节码解释器会更改“类”文件

我在源代码管理(GIT)下维护这两种类型,并且我一直看到“更改的文件数量是原来的两倍”,即使是上面提到的外观更改

顺便说一句,问题不在于源代码管理问题,而在于仅供参考,我将这些文件保存在GIT上的原因是为了能够进行“清理”(删除所有未版本的文件),然后从命令行运行程序而无需重新编译

如果你有任何想法,如何实现这个功能(运行没有构建),否则,那么我会很高兴听到它

谢谢


共 (2) 个答案

  1. # 1 楼答案

    JVM需要访问符号名,原因有很多,包括以下几点

    • JVM使用符号名来查找类、方法等
    • 符号名的存在使我们能够编写使用反射的代码
    • 当抛出异常时,符号名出现在堆栈跟踪中

    因此,符号名需要存储在类路径中

  2. # 2 楼答案

    因为类文件包含符号名

    一般来说,人们不会将类文件保存在源代码管理中。如果有人想要一个类文件的旧版本,他们会得到旧的源文件并编译它