使用一个数组创建了多少个对象?[爪哇] 1 周,5 日 Questions & Answers 4492 您好,我想知道这个数组创建了多少个对象 String arr[] = {"Paul", "Steven", "Jennifer", "Bart"}; 提前谢谢
# 1 楼答案 String arr[] = {"Paul", "Steven", "Jennifer", "Bart"}; for (Object o : arr) { System.out.format("%d\n", o.hashCode()); } System.out.format("%d\n", arr); 你应该得到5个不同的哈希代码。强烈建议堆中现在有5个对象
# 2 楼答案 创建了九个对象 每个字符串是两个对象。字符串引用和字符串的底层char[]。对于4个字符串,就是8个对象 然后是String[]本身,总共9个 当然,这假定JVM尚未对字符串文本进行intern()编辑。如果有,那么它将不会创建String,而是从intern池中提取它,这可能会给您总共1、3、5、7个或最初创建的9个对象,具体取决于String的数量
# 3 楼答案 嗨 创建了五个对象 如果你正在使用 int[] i = new int[5]; 然后jvm将在堆上创建一个对象 但是如果你为数组提供元素,例如 i[0] = 1; i[1] = 2; . . i[4] = 5; 然后jvm将在堆上创建六个包含五个整数和一个数组对象的对象
# 4 楼答案 根据你怎么看它,你可以说9个物体,也可以说只有一个。如果在调试器中查看此数组,您将能够看到9个对象,即数组、字符串对象和这些字符[]中的字符[] 但是,字符串文本在一个池中,并且不是每次都创建(只创建一次),因此如果您多次运行这一行,那么每次只创建数组。i、 e.只创建一个附加对象
# 5 楼答案 1到5之间,具体取决于JVM实现和状态。一个新的字符串数组显然被创建了,字符串——我们不知道 编辑:正如有人在其他答案中指出的那样。1-9将是更准确的答案。因为在构造字符串时,在字符串中创建了一个char[]
# 1 楼答案
你应该得到5个不同的哈希代码。强烈建议堆中现在有5个对象
# 2 楼答案
创建了九个对象
每个字符串是两个对象。字符串引用和字符串的底层
char[]
。对于4个字符串,就是8个对象然后是
String[]
本身,总共9个当然,这假定JVM尚未对字符串文本进行
intern()
编辑。如果有,那么它将不会创建String
,而是从intern
池中提取它,这可能会给您总共1、3、5、7个或最初创建的9个对象,具体取决于String
的数量# 3 楼答案
嗨
创建了五个对象
如果你正在使用
int[] i = new int[5];
然后jvm将在堆上创建一个对象
但是如果你为数组提供元素,例如
然后jvm将在堆上创建六个包含五个整数和一个数组对象的对象
# 4 楼答案
根据你怎么看它,你可以说9个物体,也可以说只有一个。如果在调试器中查看此数组,您将能够看到9个对象,即数组、字符串对象和这些字符[]中的字符[]
但是,字符串文本在一个池中,并且不是每次都创建(只创建一次),因此如果您多次运行这一行,那么每次只创建数组。i、 e.只创建一个附加对象
# 5 楼答案
1到5之间,具体取决于JVM实现和状态。一个新的字符串数组显然被创建了,字符串——我们不知道
编辑:正如有人在其他答案中指出的那样。1-9将是更准确的答案。因为在构造字符串时,在字符串中创建了一个char[]
# 6 楼答案
答案是否定的,因为
Array
不能创建对象,只有new
可以:P