1. 普通的饱汉式、饿汉式
package org.bighead.test2;public class TestPrivate { private String str = "strPrivate"; private static final TestPrivate TESTPRIVATE = new TestPrivate(); // 饱汉式、饿汉式 private TestPrivate() { super(); System.out.println(str); } public static TestPrivate getInstance(){ return TESTPRIVATE; } public void toPrint(){ System.out.println("私有构造-公开方法--单实例"); }}
反射创建实例、调用方法(实例可访问的)
package org.bighead.test2;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;public class TestDefaultSub { public static void main(String[] args) { Classclazz = TestPrivate.class; try { Constructor constructor = clazz.getDeclaredConstructor(); constructor.setAccessible(true); TestPrivate tp = (TestPrivate) constructor.newInstance(); tp.toPrint(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InstantiationException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } catch (InvocationTargetException e1) { e1.printStackTrace(); } }}
2. 并发也会影响