class Main {
private static Main sigleton=new Main();
static {
System.
out.
println("static 1: " + sigleton
+ " " + sigleton.
count1 + " " + sigleton.
count2); }
private static int count1;
static {
System.
out.
println("static 2: " + sigleton
+ " " + sigleton.
count1 + " " + sigleton.
count2); }
private static int count2=0;
static {
System.
out.
println("static 3: " + sigleton
+ " " + count1
+ " " + count2
); }
{
System.
out.
println("non-static: " + sigleton
+ " " + count1
+ " " + count2
); }
private Main (){
count1++;
count2++;
System.
out.
println(count1
+ " " + count2
); }
public static Main getInstance(){
return sigleton;
}
public static void main
(String[] args
) { Main f= Main.getInstance(); // case 1
Main t= new Main(); // case 2
}
}
Y2xhc3MgTWFpbiB7CiAgICBwcml2YXRlIHN0YXRpYyBNYWluIHNpZ2xldG9uPW5ldyBNYWluKCk7CgogICAgc3RhdGljIHsKICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJzdGF0aWMgMTogIiArIHNpZ2xldG9uICsgIiAiICsgc2lnbGV0b24uY291bnQxICsgIiAiICsgc2lnbGV0b24uY291bnQyKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBpbnQgY291bnQxOwoKICAgIHN0YXRpYyB7CiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigic3RhdGljIDI6ICIgKyBzaWdsZXRvbiArICIgIiArIHNpZ2xldG9uLmNvdW50MSArICIgIiArIHNpZ2xldG9uLmNvdW50Mik7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgaW50IGNvdW50Mj0wOwoKICAgIHN0YXRpYyB7CiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigic3RhdGljIDM6ICIgKyBzaWdsZXRvbiArICIgIiArIGNvdW50MSArICIgIiArIGNvdW50Mik7CiAgICB9CgogICAgewogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm5vbi1zdGF0aWM6ICIgKyBzaWdsZXRvbiArICIgIiArIGNvdW50MSArICIgIiArIGNvdW50Mik7CiAgICB9CgogICAgcHJpdmF0ZSBNYWluICgpewogICAgICAgIGNvdW50MSsrOwogICAgICAgIGNvdW50MisrOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oY291bnQxICsgIiAiICsgY291bnQyKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIE1haW4gZ2V0SW5zdGFuY2UoKXsKICAgICAgICByZXR1cm4gc2lnbGV0b247CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIE1haW4gZj0gTWFpbi5nZXRJbnN0YW5jZSgpOyAvLyBjYXNlIDEKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZi5jb3VudDEpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmLmNvdW50Mik7CiAgICAgICAgTWFpbiB0PSBuZXcgTWFpbigpOyAvLyBjYXNlIDIKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odC5jb3VudDEpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0LmNvdW50Mik7CiAgICB9IAp9