有人可以解释一下或指导我找到一个解释软件如何在硬件上工作的资源吗?例如,如果我声明一个私有(private)或公共(public)变量,那么它是如何在硬件上强制执行的,换句话说,是什么强制了它们是这样的事实:公共(public)和私有(private),因为每条指令都必须在硬件上发生,如何维护这种完整性?
最佳答案
在 Java 中,访问权限(public
/private
等)由编译器和 Java 虚拟机 (JVM) 管理。例如,如果您加载 Java 库,您可以动态更改字段的访问权限并将其设为公共(public)
。没有直接的硬件模拟。
Java 程序和硬件之间有很多层,这个问题很难回答。 Java 代码生成 Java 字节码(类似于机器代码),并且您无法直接访问内存。 JVM 提供此接口(interface)并根据需要将代码重新编译为机器代码,但这在很大程度上对您是隐藏的。
如果您对硬件和软件之间的接口(interface)感兴趣,我会考虑用 C 和 C++ 编写一些代码,以及生成的结果机器代码/汇编程序。 C/C++ 更接近硬件,可以让您了解正在发生的事情。
关于java - 在硬件上强制执行的变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18133013/