广州疯狂软件教育Java培训,iOS培训分享

  Java中可以使用反射来创建类的实例,即使类的构造方法私有时,也可以创建,这样就可能导致单例模式被破坏。比如下面非常纯的单例模式:

  //非常普通的单例模式

  public class Singleton {

  private static final Singleton instance = new Singleton();

  private Singleton() {

  }

  public static Singleton getInstance() {

  return instance;

  }

  }

  使用下面方法破坏单例:

  public class SingletonKiller {

  public static void main(String[] args) throws Exception {

  /* 可以使用相对路径,同一个包中可以不用带包路径 */

  Class s = Class.forName("com.piaohan.pattern.singleton.Singleton");

  Constructor ct = s.getDeclaredConstructor();

  /* true:使java不检查访问限制,即可以使用private方法 */

  ct.setAccessible(true);

  System.out.println(Singleton.getInstance());

  System.out.println(ct.newInstance());

  System.out.println(Singleton.getInstance() == ct.newInstance());

  }

  }

  结果如下:

  com.piaohan.pattern.singleton.Singleton@67f1fba0

  com.piaohan.pattern.singleton.Singleton@3fbefab0

  false

  Java培训不仅注重理论,更注重项目的实战能力,能够让你快速适应企业开发的进度,成为企业所需要的Java人才。疯狂Java培训主要提升学员就业能力,重点提升实践动手能力。没有工作经验的学员,在疯狂Java,通过大量全真经典企业级项目进行集中培训,课上讲师讲解和课下项目练习课上课下双管齐下,学员通过数月培训都可获得1-2年的工作经验,进而在同类的求职者中脱颖而出。疯狂java培训不但培养学员java开发思维,编程思想,还注重学员企业项目开发能力,让你上岗即上手。疯狂Java培训让你体会java编程的快乐,项目开发的兴奋,激情,通过短短几个月的时间,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,迅速成为技能型的现代化高端人才,迅速获得高薪就业!