声明这样的数组之间的真正区别是什么:
var myArray = new Array();
和
var myArray = [];
有所不同,但在该示例中没有区别。
使用更冗长的方法:new Array()
在参数中确实有一个额外的选择:如果将数字传递给构造函数,则将获得该长度的数组:
x = new Array(5);
alert(x.length); // 5
为了说明创建数组的不同方法:
var a = [], // these are the same
b = new Array(), // a and b are arrays with length 0
c = ['foo', 'bar'], // these are the same
d = new Array('foo', 'bar'), // c and d are arrays with 2 strings
// these are different:
e = [3] // e.length == 1, e[0] == 3
f = new Array(3), // f.length == 3, f[0] == undefined
;
另一个区别是,使用时,newArray()
您可以设置数组的大小,这会影响堆栈的大小。如果您遇到堆栈溢出(Array.push与Array.unshift的性能)(当数组的大小超过堆栈的大小并必须重新创建它时会发生这种情况),这将很有用。因此,实际上,根据使用情况,使用时newArray()
可以提高性能,因为可以防止发生溢出。
如该答案所指出的,newArray(5)
实际上不会将五个undefined
项目添加到数组中。它只是增加了五个项目的空间。请注意,使用Array
这种方式很难依靠它来array.length
进行计算。
问题内容: 两者的含义使我难以理解。 问题答案: 甲声明引入的标识符和描述了它的类型,无论是类型,对象,或功能。声明是编译器需要接受对该标识符的引用的内容。这些是声明: 甲定义实际实例化/器具该标识符。这是什么样的连接器需要以链接引用这些实体。这些是与上述声明相对应的定义: 可以使用定义代替声明。 可以根据需要多次声明标识符。因此,以下内容在C和C ++中是合法的: 但是,必须定义一次。如果忘记定
人们似乎在说malloc在使用数组时有多棒,当你不知道一个数组在编译时有多少元素时,你可以使用它(?)。没有malloc你就不能这么做吗?例如,如果我们知道一个字符串的最大长度为10,那么下面的结果是否足够接近同一事物?。。。除了能够释放内存之外。 和
%1有编译器错误,而%2是合法的。 为什么变量声明的类型必须与我们传递给对象类型的类型匹配(不允许派生类型)?我使用的数组如下所示,这是完全正确的: 有人能告诉我为什么集合必须声明为条件2吗?谢谢
问题内容: 是什么区别,并宣布一组样式时的元素,什么是决定使用哪一个时发挥作用的语义? 问题答案: 是的,它们是不同的… 是[ID选择器,用于定位具有唯一ID的_单个_特定元素,但。是一个类选择器,用于将特定类的 多个 元素作为目标。换一种方式: 将为带有属性声明的 单个 元素设置样式 将使用属性设置_所有_元素的样式(您也可以将多个类分配给一个元素,只需将它们用空格隔开,例如) 典型用途 一般来
问题内容: public class SomeClass { private HashSet contents = new HashSet (); private Set contents2 = new HashSet (); } 有什么不同?最终它们都是不是吗?第二个对我来说似乎是错误的,但是我看到它经常被使用,接受和工作。 问题答案: 是一个接口,并且是实现该接口的类。 将变量声明为类型意味着
问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型