java和c、c++中数组的区别

在c、c++中使用数组是很危险的,因为c和c++中的数组就是内存块。如果一个程序要访问其自身内存块之外的数组,或在数组初始化之前使用内存(程序中常见的错误),就会产生难以预料的后果。


java的主要目标之一就是安全性。java确保数组会被初始化,而且不能再它的范围之外被访问。这种范围检查,是以每个数组上少量的内存开销及运行时的下标检查为代价的。当由此换来的是安全性和效率的提高,因此付出的代价是值得的。


【java和c、c++中数组的区别】当创建一个数组对象时,实际上就是创建了一个引用数组,并且每个应用会自动被初始化为一个特定值,该值拥有自己的固定值null。一旦java看到null,就知道这个引用还没有指向某个对象。如果试图使用一个还是null的引用,在运行时将会报错。因此,常犯的数组错误在java中就可以避免。

    推荐阅读