缓冲区溢出和阵列溢出 - 简单说明

时间:2012-07-12 14:05:09

标签: java

我正在尝试从Effective Java

中了解以下几行
  

使Java如此高兴使用的一件事是它是一种安全的语言。这个   意味着在没有本机方法的情况下,它不受缓冲区溢出,阵列的影响   超支,狂野指针和其他困扰不安全的内存损坏错误   C和C ++等语言。用安全的语言,可以编写类和   无论如何,确切地知道他们的不变量将保持真实   发生在系统的任何其他部分。

什么是缓冲区溢出,数组溢出(我在这里不需要太多细节,只是简单的概述)以及Java的哪些特性使程序对overuns免疫?

1 个答案:

答案 0 :(得分:1)

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

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