就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。
10年前关闭。
Java is designed to run in a “Sandboxed” environment in contrast to C which is not constrained. Discuss the implications of this from a security point of view.
我对这个概念做了一些研究。我发现如果它是运行 Java 的沙盒,它会通过一个更受控制的门从内存的不同部分检索信息。但是,在 C 中,它不是不受控制的。
有人可以解释一下我还有什么可以补充的吗?
编辑:
这是我添加的内容:
Java 编程语言是一种面向对象的语言,专门设计为具有尽可能少的实现依赖关系。 Java 是一次编写多次部署的模型。它表面上类似于 C/C++/C#,但具有不同的底层对象模型。 Java有很多版本,例如Java标准版(Java SE)、Java移动版(Java ME)、Java企业版(Java EE)等。
用java编写的应用程序被编译成Java字节码,它是一种独立于任何平台的中间语言。因此,编译器可以在多平台上工作。
编译和执行的虚拟机模型通过在 Java 虚拟机 (JVM) 上运行已编译的代码(Java 字节码)来工作。 Java 虚拟机解释 Java 字节码并提供可以执行 Java 字节码的环境。所有平台上的所有 JVM 都使用相同的字节码,这让 Java 可以被描述为“一次编写,随处运行”。
由于以下原因,这比生成 native 代码的编译器更好:
最佳答案
不要混合语言和虚拟化。
例如,Google 的 Native Client (NaCL) 是用于 C/C++(以及其他所有程序)程序的沙盒环境。
关于与 C 相比的 Java 沙盒环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8528223/