1.private Single() {//外部类中无法实例化 } private static Single instance = new Single(); public static Single getInstance() { return instance; } 2.错误的单例: public class Single { private static Single instance = null; public static Single getInstance() { if (instance == null) { instance = new Single(); } return instance; } } public class Thread1 implements Runnable { public void run() { Single single = Single.getInstance(); System.out.println(Thread.currentThread().getName()+":run"+single.toString()); } public static void main(String []args){ Thread1 t1 = new Thread1(); Thread td1 = new Thread(t1); Thread td2 = new Thread(t1); td1.start(); td2.start(); //输出的结果为: //Thread-1:runaa.Single@1c78e57 //Thread-0:runaa.Single@5224ee //在多线程中会发生错误,应该public static %synchronized% Single getInstance } }