数组内存空间分配与增长问题 请大侠赐教 谢谢了 定义一个String[] st = new String[]{}数组 其内存空间是怎么分配的 存入元素的时候内存空间是怎么增长的呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数组一开始你必须定义长度。 一旦定义以后,长度不可变。定义的时候,他会开辟一块连续的内存区域。所以你这个数组不能再存入任何元素了。。而关于可变长数组List,你可以看下源码。当装满的时候,他会定义一个新数组,长度为原来数组的2倍+1,然后再把数据copy过来 如下代码: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); }} 如下代码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()); } }} 请教高手关于Java扫描文件目录问题 操作符“+”的定义,他是否是new了一个新的字符串? <html:button>的问题 请教 Externalizable接口问题 关于Java技术的"大"题目 一个很简单的一对一聊天程序,帮我找下错 连接access无法执行插入语句 如何将两张gif图片叠加在一起,然后生成一张新的图片? 一个初涉java的学员 想问一下key和elements[end]为什么不能比较大小,强转为int也不行 Java 有序列表 String.split()问题
所以你这个数组不能再存入任何元素了。。而关于可变长数组List,你可以看下源码。当装满的时候,他会定义一个新数组,长度为原来数组的2倍+1,然后再把数据copy过来
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);
}}
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());
}
}}