【发布时间】:2013-01-08 07:09:20
【问题描述】:
Java 供应商和社区表示“Java 比其他语言更安全”。但我想知道怎么做?
如果我们看一下 Java 和 .Net 中的编程,它们看起来很相似。
.net 编程涉及的步骤 Click to know more
- 编写 .net 程序。
- 将您的代码编译为 MSIL(编译将您的源代码翻译为 Microsoft 中间语言 (MSIL) 并生成所需的元数据)。
- 将 MSIL 编译为本机代码(在执行时,即时 (JIT) 编译器将 MSIL 转换为本机代码。在此编译期间,代码必须通过检查 MSIL 和元数据的验证过程找出是否可以确定代码是类型安全的)。
- 运行代码(公共语言运行时提供能够执行的基础架构和可在执行期间使用的服务)。
java编程涉及的步骤 Click to know more
- 编写 Java 程序
- 编译Java程序(Java编译器将java源代码转换为.class文件,即字节码)
- JVM加载程序到内存(JVM加载.class文件到内存做字节码校验,将.clss文件转成机器语言)
- Java 程序的执行(无论我们在 Java 程序中编写了什么操作,JVM 通过解释字节码来执行它们。如果我们谈论旧的 JVM,它们速度很慢,一次执行并解释一个字节码。现代 JVM使用 JIT 编译单元,我们甚至称之为即时编译)。
如果我们查看两种语言的步骤,它们几乎相同,那么 “为什么 Java 与其他语言相比更安全?”
【问题讨论】:
-
引用参考文献也是你在哪里读到的。
-
我现在想到的一点是,在 .net 中,您仍然可以编写不会在 CLR 之上运行的“非托管代码”,而在 Java 中,无论您编写什么都将运行仅在 JRE 之上。
-
是的,参考(或链接)将有助于其他人理解为什么有人这么说。
-
定义“其他”...计算机世界中的语言比您提到的几种语言还要多。也许原始引用是在谈论 Java vs C,或者 Java vs Ada(可能会是其他方式:))
-
Java 比以前的语言更安全。 .net 出现在 Java 之后,并且有许多最好的想法。也就是说 .net 有更多方法可以突破安全编码,因此编写不安全的程序要容易得多(你也可以在 java 中)
标签: java .net security programming-languages