定义一个String[] st = new String[]{}数组   其内存空间是怎么分配的    存入元素的时候内存空间是怎么增长的呢?

解决方案 »

  1.   

    数组一开始你必须定义长度。  一旦定义以后,长度不可变。定义的时候,他会开辟一块连续的内存区域。
    所以你这个数组不能再存入任何元素了。。而关于可变长数组List,你可以看下源码。当装满的时候,他会定义一个新数组,长度为原来数组的2倍+1,然后再把数据copy过来
      

  2.   

    如下代码:
    package test;import java.util.ArrayList;
    import java.util.List;public class Sample {
    public static List list=new ArrayList();
    public static void main(String[] args) {
    String[] st = new String[]{"ss","bb","vv"};
    for(int i=0;i<st.length;i++){
    list.add(st[i]);
    }
    System.out.println(list);
    }}
      

  3.   

    如下代码2:
    package test;import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;public class Sample {
    public static List list=new ArrayList();
    public static void main(String[] args) {
    String[] st = new String[]{"ss","bb","vv"};
    for(int i=0;i<st.length;i++){
    list.add(st[i]);
    }
    Iterator it=list.iterator();
    while(it.hasNext()){
    System.out.println(it.next());
    }
    }}