昆明java培训
达内昆明广州春城路

18487146383

热门课程

模式规矩会对开发的作用

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

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 循环详解及实战小项目
下一篇:多线程要慎用!

for 循环详解及实战小项目

MyEclipse的配置(上)

Servlet,JSP配置调试及使用

多线程要慎用!

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货