java 中数组的长度 可以改变么?

有人说可以改变,有人说不可以。反正我在用的时候,不指定数组的长度就会报错。

java中数组的长度 不可以改变

java中的数组的定义就是 相同类型固定长度 的一组数据,一旦被初始化,长度不可更改

数组声明有两种方式:

  • 静态的初始化
    如:String[] strArray = {"ab","cd"};
    声明好后它的长度就是2不可改变。

  • 动态初始化
    如:String[] strArray = new String[5];
    这个时候它的长度为5也是不可改变的。

当然你可以先声明一个数组String[] strArray = {"ab","cd"}, 然后由于业务需要修改为strArray = new String[5],表面上看长度改变了,但是这已经是两个不同的数组了,前面一个由于没有用被垃圾回收器回收了。

  • 注意区分使用 new 的区别。
如果对需要用的数组的长度不确定,有两种解决办法:
  • 第一种是在数组初始化的时候 长度申请的足够大,这样做会造成 内存空间的浪费,一般不推荐使用。

  • 第二种是用java中提供的 集合 的方式存储数据,如List,Set和Map类型的对象存储数据,

    • 一方面这些类型的对象的长度都是 动态增长的
    • 另一方面这些类中提供了很多便于操作数据的方法。
  • 因此在对所需存储数据的多少不确定的时候,推荐使用第二种方法。

你可能感兴趣的:(java 中数组的长度 可以改变么?)