java Object[]到底是什么?
我很难理解Object[]
是什么。它是一个保存对象的数组吗?例如,当我们这样做时会发生什么:
int a = 5;
String b = "Hi";
Object[] c = { a, b };
我是否刚刚创建了一个添加了属性a
和b
的对象?或者我得到了一个Object
数组,其中a
和b
被算作对象和这个c
对象数组的元素
谢谢
你可以在下面搜索框中键入要查询的问题!
我很难理解Object[]
是什么。它是一个保存对象的数组吗?例如,当我们这样做时会发生什么:
int a = 5;
String b = "Hi";
Object[] c = { a, b };
我是否刚刚创建了一个添加了属性a
和b
的对象?或者我得到了一个Object
数组,其中a
和b
被算作对象和这个c
对象数组的元素
谢谢
# 1 楼答案
不,这些都是元素属性!=元素
没什么错。计算为元素,即对象
写上一行时,这意味着您创建了一个数组对象,其中包含元素
a
和b
。你可以用c
引用数组# 2 楼答案
准确地说,它是一个包含对其他对象的引用的对象
Java中的所有对象都会被创建并存在于堆中,直到垃圾收集器回收它们。引用指向这些内存位置,并为程序提供访问权限
您给出的示例使用了两个不可变的对象。如果你选择一个可变的对象并将其添加到数组中,真正的乐趣就会发生
# 3 楼答案
这是一组物体。您已经将a从一个基本int自动装箱为一个整数,并将其添加到对象数组中。请记住,所有对象都会扩展对象。尝试将对象强制转换为它们的子类类型,这可能会帮助您了解发生了什么。例如
# 4 楼答案
实际上,您创建了一个从Object派生的对象数组(对于Java中的所有对象都是如此),现在在位置0上包含一个整数(通过自动装箱创建),在位置1上包含一个字符串
# 5 楼答案
Java不是动态类型的,因此不能像javascript(without reflection)那样动态添加属性。顺便说一句,在java中,你不称它们为属性,而是称它们为实例成员/字段或方法,如果它是一个函数,则在classes中定义(但你通常使用由类构造的实例)。所以
Object
是一个类Object obj = new Object();
obj
是一个实例符号
ClassName[]
总是表示类型为ClassName
的数组,所以用符号表示一组对象。及
只能包含字符串的数组
可以使用
它创建了一个新的空数组,可以容纳3个元素。或者,您可以通过以下方式直接设置元素:
它创建了一个包含3个元素的数组(elem1-3)。因此:
因为使用了} 继承
Object
作为类型,所以实际上可以对数组设置任何内容,因为任何类都会自动从^{2.34是一个double,所以是一个原语,但由于1.4Java autoboxes every primitive into its Object pendant(所以^{} ),这就是它工作的原因。注意,通常在静态类型语言中,你不想这样做,因为你失去了静态类型检查的所有优点,所以最好定义你的类型并使用它们
# 6 楼答案
在执行它将打印的程序时
对数组进行迭代。这表明
Object
数组由a of Integer
和b of String
组成