js和java数组初始化的问题

是不是js的数组 比如var str = new Array(); 不需要先设置数组大小。
是不是java的数组 比如String[] aArray = new String[5]; 初始化必须要设置大小啊

4个回答

js作为一个动态语言 (脚本,解释执行),数组长度都是可以随意扩展的,不需要初始化时指定长度,自然这个是可选的
java 作为静态语言(编译执行),初始化的时候就确认了长度大小的

qq_27836205
Jordan裔 回答的都不错哦 不知道该采纳谁了-_-
接近 3 年之前 回复
qq_29594393
当作看不见 回复Jordan裔: 这个是一个字符串数组,数组的长度就是获取到的value的个数,在方法内部就已经初始化了,你可以查看源码,在eclipse里面有这个功能
接近 3 年之前 回复
qq_27836205
Jordan裔 那为什么这个 String[] array = request.getParameterValues("array"); 我没有设置长度啊,也可以使用array数组
接近 3 年之前 回复

是的,js的数组是一个可以自动扩容的;
你new Array(5);也是可以的;
java的数组不能自动扩容,所以需要指定数组长度;

希望可以帮到你....

w172087242
little_how 回复Jordan裔: 如果有帮助的话,就采纳吧...
接近 3 年之前 回复
qq_27836205
Jordan裔 回复little_how: 回答的都不错哦 不知道该采纳谁了-_-
接近 3 年之前 回复
w172087242
little_how 回复Jordan裔: 因为你这个只是引用,方法内部已经设置了...
接近 3 年之前 回复
qq_27836205
Jordan裔 那为什么这个 String[] array = request.getParameterValues("array"); 我没有设置长度啊,也可以使用array数组
接近 3 年之前 回复

js数组 你这样写就可以了: var str=[]; 简单方便

qq_34309305
75闪光雷 回复Jordan裔: 你往里面存值了啊,他会根据你的值的大小,自动申请内存
接近 3 年之前 回复
qq_27836205
Jordan裔 那为什么这个 String[] array = request.getParameterValues("array"); 我没有设置长度啊,也可以使用array数组
接近 3 年之前 回复

你的推理没错,java中数组的初始化length是必备的,如果无法确定其长度就需要用可变数组:ArrayList;
源码:public class ArrayList extends AbstractList
implements List, RandomAccess, Cloneable, java.io.Serializable
{
其原理是根据传入的数据长度自动生成一个其长度是传入Data.length的二倍的List,其安全性是可以保障的,但是同等数据量的情况下Array[]比ArrayList<>快

qq_27836205
Jordan裔 回答的都不错哦 不知道该采纳谁了-_-
接近 3 年之前 回复
u011298788
你我多虚伪 回复Jordan裔: 从内存的角度来说,这个代码的意思是,定义一个类型为:String[] 的变量array,指向一个堆栈空间的地址(request.getParameterValues("array"),这个东西放回的数组是一个堆栈的地址)
接近 3 年之前 回复
qq_27836205
Jordan裔 那为什么这个 String[] array = request.getParameterValues("array"); 我没有设置长度啊,也可以使用array数组
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问