Почему я получаю два значения a1?
class A { private static A a1; private A(){} public static A createA(){ if(a1==null) { a1 = new A(); } System.out.println("hashcode of a1 ="+a1.hashCode()); return a1 ; } class B { public void m1() { A a2 = A.createA(); **strong text**System.out.println("hashcode of a2 ="+a2.hashCode()); } } public class Singleton { public static void main(String[] args) { A.createA(); B b=new B(); b.m1(); } }
Что я уже пробовал:
Я пробовал компилировать в разных компиляторах, но результат был один и тот же.