【发布时间】:2014-06-07 04:29:08
【问题描述】:
假设我有 A 类和 B 类,代码是这样的:
class A
{
private int x;
private int[] y=new int[10];
private string s;
}
public class B
{
public static void main(String args[])
{
A a=new A();
}
我的理解是当A类没有定义构造函数时,JVM会自动定义这样的构造函数:
//Auto generated constructor
A()
{
x=0;
s=NULL;
y[]=//What will come here
}
我想知道在这个自动生成的构造函数中将为数组数据类型分配什么值。如果它为所有占位符分配零,它不会影响大型数组的程序的性能,因为将零分配给就时间而言,数组的所有成员都不是一项廉价的任务。
注意:(更新)
它不存储空值。What is the default initialization of an array in Java? 它存储零。所以我的问题是它会影响大型数组的性能。
【问题讨论】:
-
与任何其他对象相同——
null。您确实意识到您可以自己尝试一下,对吗?如果您担心初始化数组所需的时间(如果这需要任何时间),那么您也可能过早地进行优化 -
是的,我可以,但我想知道它将如何完善性能,请完整阅读问题。
-
我做到了,我回答了你的问题,如果你担心数组是如何初始化的,那么你几乎肯定会过早地优化,除非你对从其他地方获取引用更感兴趣。
-
@user3580294 你没有回答我的问题你只是用你自己的方式回答问题。
-
"我想知道在这个自动生成的构造函数中,数组数据类型会被赋予什么值。"我看不出它变得多么清晰。值为
null。