-3

我试图从 Effective Java 中理解以下几行

使 Java 使用起来如此愉快的一件事是它是一种安全的语言。这意味着在没有本地方法的情况下,它不会受到缓冲区溢出、数组溢出、野指针和其他困扰不安全语言(如 C 和 C++)的内存损坏错误的影响。在安全的语言中,可以编写类并确定地知道它们的不变量将保持正确,无论系统的任何其他部分发生什么。

什么是缓冲区溢出、数组溢出(我不想在这里提供太多细节,只是简单的概述)以及 Java 的哪些特性使程序不受溢出的影响?

4

1 回答 1

1

当您尝试查找数组边界之外的值时, Java 会抛出一个ArrayIndexOutOfBoundsException错误,而不是导致段错误、不可预测的(从安全角度来看可能是有问题的)行为,或者只是使您的操作系统崩溃。

(是的,这就是 C、C++ 等所做的。)

于 2012-07-12T14:12:42.037 回答