在JAVA中定义数组时,可不可以一开始不设定数组的长度?
肯定要先声明数组长度,不然系统不会为他分配内存空间。Java中的数组是定长的,比如int[]a={};定义出来的数组a长度为0,已经是定长了,之后再给它赋值是不可以的,因为它的长度定义出来之后是不可改变的了。所以在使用数组的时候,一定要注意长度,不能超过这个长度,负责就数组下表越界了。
java中数组为什么length-1?
因为Java数组取不到最后一个下标
int[] arr = new int[5];
arr.length的值就是5
但是arr数组中只有arr[0] arr[1] arr[2] arr[3] arr[4] 这5个元素
所以要-1
数组可以改变长度吗?
java中数组的长度不可以改变。java中的数组的定义就是相同类型,固定长度的一组数据,一旦被初始化,长度不可更改。如果对需要用的数组的长度不确定,有两种解决办法:
第一种是在数组初始化的时候长度申请的足够大,这样做会造成内存空间的浪费,一般不推荐使用。
第二种是用java中提供的集合的方式存储数据,如List,Set和Map类型的对象存储数据,一方面这些类型的对象的长度都是动态增长的,另一方面这些类中提供了很多便于操作数据的方法,因此在对所需存储数据的多少不确定的时候,第二种方法比第一种方法更优秀。