fork download
  1. class Main {
  2. private static Main sigleton=new Main();
  3.  
  4. static {
  5. System.out.println("static 1: " + sigleton + " " + sigleton.count1 + " " + sigleton.count2);
  6. }
  7.  
  8. private static int count1;
  9.  
  10. static {
  11. System.out.println("static 2: " + sigleton + " " + sigleton.count1 + " " + sigleton.count2);
  12. }
  13.  
  14. private static int count2=0;
  15.  
  16. static {
  17. System.out.println("static 3: " + sigleton + " " + count1 + " " + count2);
  18. }
  19.  
  20. {
  21. System.out.println("non-static: " + sigleton + " " + count1 + " " + count2);
  22. }
  23.  
  24. private Main (){
  25. count1++;
  26. count2++;
  27.  
  28. System.out.println(count1 + " " + count2);
  29. }
  30.  
  31. public static Main getInstance(){
  32. return sigleton;
  33. }
  34.  
  35. public static void main(String[] args) {
  36. Main f= Main.getInstance(); // case 1
  37. System.out.println(f.count1);
  38. System.out.println(f.count2);
  39. Main t= new Main(); // case 2
  40. System.out.println(t.count1);
  41. System.out.println(t.count2);
  42. }
  43. }
Success #stdin #stdout 0.02s 245632KB
stdin
Standard input is empty
stdout
non-static: null 0 0
1 1
static 1: Main@19821f 1 1
static 2: Main@19821f 1 1
static 3: Main@19821f 1 0
1
0
non-static: Main@19821f 1 0
2 1
2
1