gpt4 book ai didi

java - 如果我在应用程序仍在运行时修改项目中的类,会发生什么情况?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:45 26 4
gpt4 key购买 nike

我使用 Eclipse 并编译并运行了一些项目。然后我决定修改一些类。似乎正在运行的项目没有 catch 变化,但如果我运行另一个项目实例,它确实会看到变化。问题是,Eclipse 如何排除这种情况?因为我看到 .class 文件存储为单个实例,以后的更改只会覆盖以前的文件。可能是 JVM 在内存中加载类,即使它们发生了变化也不会触及它们。但我想听听完整的故事。

最佳答案

当程序运行时,它会将 .class 文件读入内存并从那时起使用该副本。

如果你改变,它不会重新读取文件并再次加载/链接它,那会更复杂。有一些类加载器可以自动执行此操作,但这不是默认行为。 (这也是非常不可靠的,因为您可能会以不兼容的方式更改类,例如修改字段或方法签名)

一般来说,软件都是以可以想象到的最简单的方式实现的。如果它简单,它就更有可能工作并被理解。在您尝试了解计算机的工作原理时,这应该是您的指导原则。

关于java - 如果我在应用程序仍在运行时修改项目中的类,会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21968436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com