1

在下面的代码中,我知道字符串 concat 是在编译时完成的,而 toCharArray 是在运行时完成的。我的问题 - 在运行时 toCharArray 什么时候被执行?是在构造函数执行之前,类似于静态块吗?

private final static char[] DigitTens = {
     ("0000000000"+ "1111111111"+"2222222222"+"3333333333"+"4444444444" //
     +"5555555555"+"6666666666"+"7777777777"+"8888888888"+"9999999999")
      .toCharArray();             
};
4

3 回答 3

2

这是一个静态初始化。 toCharArray()将在类初始化时被调用。

于 2013-10-05T16:14:15.700 回答
1

静态初始化程序在加载类时按照它们定义的顺序执行(自上而下,就像简单的变量初始化程序一样)。在这种情况下,toCharArray() 将在类初始化时初始化。

于 2013-10-05T16:17:54.193 回答
0

当调用包含 DigitTens 的类时。

于 2013-10-05T16:15:32.873 回答