zoukankan      html  css  js  c++  java
  • 原生的servlet、单例多例、懒汉饿汉模式、静态内部类和枚举

    1. 什么是单例多例:

    单例:就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的

    多例:指每个请求用一个新的对象来处理,比如action; 

    2. 单例模式和多例模式说明:

      单例模式和多例模式属于对象模式。

      单例模式的对象在整个系统中只有一份,多例模式可以有多个实例。

      它们都不对外提供构造方法,即构造方法都为私有。

    3. 原生的servlet:

    <servlet>
    	<servlet-name>DisplayChart</servlet-name>
    	<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>DisplayChart</servlet-name>
    	<url-pattern>/DisplayChart</url-pattern>
    </servlet-mapping>
    

    4. 单例模式举例

    第一种:懒汉式(线程不安全,加上synchronized后线程安全)

    public class Singleton {
        private static Singleton instance;
        private Singleton (){}
    
        public static synchronized  Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
        }
    }
    

    第二种:饿汉式(线程安全)

    public class Singleton {
        private static Singleton instance = new Singleton();
        private Singleton (){}
        public static Singleton getInstance() {
        return instance;
        }
    }
    

    第三种:静态内部类

    public class Singleton {
        private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
        }
        private Singleton (){}
        public static final Singleton getInstance() {
        return SingletonHolder.INSTANCE;
        }
    }
    

    第四种:枚举

    public enum Singleton {
        INSTANCE;
        public void whateverMethod() {
        }
    }
    

      

  • 相关阅读:
    如何配置QuickFIX/N
    QuickFIX/N 动态存储配置信息
    Java深入
    【转】VS项目属性的一些配置项的总结
    vs2013中项目依赖项的作用
    Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境
    【转】字符集和字符编码(Charset & Encoding)
    【转】编程思想之正则表达式
    【转】编程思想之异常处理
    【转】深入Windows内核——C++中的消息机制
  • 原文地址:https://www.cnblogs.com/jihongtao/p/10467484.html
Copyright © 2011-2022 走看看