• 使用反射破坏单例模式


      广州疯狂软件教育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核心技术,迅速成为技能型的现代化高端人才,迅速获得高薪就业!

  • 相关阅读:
    乐卡上海网点地图制作心得 | 百度地图API使用心得
    2017年05月10日记一次微项目投产 | 安卓版微信内置浏览器不能解析gzip压缩过的mp4视频的问题
    一个上传图片项目遇到的一些问题
    Python解析PDF三法
    落魄的.NET开发者🔞年中跳槽记
    Hello, Android多屏幕版
    Hello, Android 快速入门
    2 Orchard汉化资源包的使用
    Orchard 异常
    1 初识Orchard
  • 原文地址:https://www.cnblogs.com/gojava/p/3711428.html
Copyright © 2020-2023  润新知