publicclassYou{ privatestatic You you = null; privateYou(){} publicsynchronizedstatic You getYou(){ if (you == null) you = new You(); return you; } } publicstaticvoidmain(String[] args){ You you1 = You.getYou(); You you2 = You.getYou(); System.out.println(you1 == you2); }
publicclassYou{ privatestatic You you = null; publicstatic You getYou(){ if (you == null) { synchronized (You.class) { if (you == null) { you = new You(); } } } return you; } }
publicclassYou{ privatestatic You you = null; privateint count = 0; publicsynchronizedintgetCount(){return ++count;} privateYou(){} publicstatic You getYou(){ if (you == null) you = new You(); return you; } } publicstaticvoidmain(String[] args){ for (int i = 0;i < 10;i++) new Thread(){ @Override publicvoidrun(){ You you = You.getYou(); System.out.println(getName()+" "+you.getCount()); } }.start(); }