所以目前我正在准备Oracle认证的助理Java ...并且我已经遇到了这个问题:以下代码的输出是什么
解决方案说,输出为:u u ucrcr
我知道静态初始化器只被调用一次,所以 我不明白为什么要打印第三个u
package com.company;
class Order {
static String result = "";
{
result += "c";
}
static {
result += "u";
}
{
result += "r";
}
}
public class Main {
public static void main(String[] args) {
System.out.print(Order.result + " ");
System.out.print(Order.result + " ");
new Order();
new Order();
System.out.print(Order.result + " ");
}
}
答案 0 :(得分:0)
它输出Order.result
3次,这就是u
被打印3次的原因。
加载订单类后,result
为u。您执行System.out.print(Order.result + " ");
来第一次输出,而您执行System.out.print(Order.result + " ");
来第二次输出。然后,创建2个Order类的实例,从而两次附加“ cr”,并附加result
是ucrcr
的方式,因此输出ucrcr
,您的位置是第三位。>
您必须考虑到这里使用System.out.print
的事实。