课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 合作企业 > 企业笔试题 > 模式规矩会对开发的作用
  • 模式规矩会对开发的作用

    发布:昆明Java培训      来源:企业笔试题      时间:2016-02-15

  • 1. 基础SE部分有5种:Singleton Test(单例模式)、strategy(策略模式)、proxy(代理模式)、observer(观察者模式)、Decorator(装饰模式)。

    2. Unit部分有4种:Command(命令模式)、Composite(组合模式)、Template-Method(模板方法模式)、adapter(适配器模式)。

    3. Xml部分一种:simple-factory(工厂模式)。

    可能很多同学都还不知道为什么有这么多的模式,其实我们在无意之间已经使用到了,只是自己没有察觉到而已,经典的设计模式有23种。那么我就把我练习过的其中几个模式分享出来今天只讲第一个。

    单例模式:

    public class SingletonTest
    {
            public static void main(String[] args)
            {
                    Singleton singleton = Singleton.getInstance();
                    Singleton singleton2 = Singleton.getInstance();
                    System.out.println(singleton == singleton2);
            }
    }
    class Singleton
    {
            private static Singleton singleton;
            private Singleton(){}
            public static Singleton getInstance()
            {
                    if(singleton == null)
                    {
                            singleton = new Singleton();
                    }
                    return singleton;
            }
    }

    这种在多线程状态下就不得行弄不好就生成多个对象,谨慎使用。

    意义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

    优点:在内存中只有一个对象,节省内存空间,避免频繁的创建销毁对象,可以提高性能,避免对共享资源的多重占用,可以全局访问。

    适应场景:1.就是频繁实例化然后销毁的对象。2.创建对象时候耗时过多或者使用的资源比较多,但是有经常用到的对象。3.有状态的工具类对象。4.以及其他我没用过的所有要求只有一个对象的场景。

    注意事项:只能使用单例类提供的方法得到单例对象,不要使用反射,(说道反射有机会我分享给大家我学习反射的几种生产Class类对象方法以及实例方法以及应用范围。)否则将会实例化一个新对象。不要做断开单例使用共享资 时,注意线程安全。

    下面是平时网上看到的一些争议:

    java中单例模式的一些争议:单例模式的对象长时间不用会被JVM垃圾收集器收集吗?看到不少资料中说,如果一个单例对象在内存长久不用,会被jvm认 为是一个垃圾在执行垃圾收集的时候会被清理掉。对此这个说法我个人观点是,在hotspot虚拟机1.6版本中,除非人为地判开单例中的静态引用到单例对 象的连接,否则jvm垃圾收集器是不会回收单例对象的。

    推荐文章

上一篇:for 循环详解及实战小项目

下一篇:多线程要慎用!

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56