java设计模式- (1)单例模式
参加校园招聘的笔试,发现公司都会考一些java设计模式,所以上网查询相关内容,总结常用的几种单例模式。
  单例模式(Singleton Pattern)是 Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,
	         它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,
	      同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
(1)、懒汉式
public class SingleTon {
     private static Singleton instance;
  // 让构造函数为 private,这样该类就不会被实例化
     private Singleton (){}
    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}
(2)、双重检验锁模式
public class SingleTon {
     private static SingleTon instance = null;
     private  SingleTon() { }
      //静态工程方法,创建实例
      public static SingleTon getInstance() {
             if(instance == null) {
              synchronized (instance) {
                 if(instance == null)
                      instance = new SingleTon();
             }
             }
        return instance;
     }
  //测试方法 
  public void showMessage() {
    System.out.println("Hello World!");
  }
}
}
(3)、饿汉式 推荐使用
public class SingleTon {
    private static final SingleTon instance = new SingleTon();
    private  SingleTon() { } 
    public static SingleTon getInstance() {
        return instance;
    }
}    
(4)、静态内部类 推荐使用
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 static void main(String[] args) {
        //不能实例化SingTon这个类
        // SingleTon singleTon = new SingleTon();
        //获取唯一可用的对象
        SingleTon singleTon =SingleTon.getInstance();
        singleTon.showMessage();
    }
新手若有不足之处,请多多指教。
java设计模式- (1)单例模式的更多相关文章
- java 设计模式之单例模式
		
-------Success is getting what you want, happiness is wanting what you get. java设计模式之单例模式(Singleton) ...
 - 折腾Java设计模式之单例模式
		
博文原址:折腾Java设计模式之单例模式 单例模式 Ensure a class has only one instance, and provide a global point of access ...
 - Java设计模式之单例模式(七种写法)
		
Java设计模式之单例模式(七种写法) 第一种,懒汉式,lazy初始化,线程不安全,多线程中无法工作: public class Singleton { private static Singleto ...
 - Java 设计模式之单例模式(一)
		
原文地址:Java 设计模式之单例模式(一) 博客地址:http://www.extlight.com 一.背景 没有太多原由,纯粹是记录和总结自己从业以来经历和学习的点点滴滴. 本篇内容为 Java ...
 - java设计模式1——单例模式
		
java设计模式1--单例模式 1.单例模式介绍 1.1.核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点 1.2.常见场景 1.3.单例模式的优点 1.4.常见的五种单例模式实现 ...
 - java设计模式之单例模式你真的会了吗?(懒汉式篇)
		
java设计模式之单例模式你真的会了吗?(懒汉式篇) 一.什么是单例模式? 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供 ...
 - java设计模式之单例模式(几种写法及比较)
		
概念: Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建 ...
 - [转]JAVA设计模式之单例模式
		
原文地址:http://blog.csdn.net/jason0539/article/details/23297037 概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主 ...
 - java设计模式之单例模式(七种方法)
		
单例模式:个人认为这个是最简单的一种设计模式,而且也是在我们开发中最常用的一个设计模式. 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个 ...
 
随机推荐
- 【WCF】基址与默认终结点
			
五月份的时候,有位老友给老周提了个建议:希望老周写一写WCF的文章.其实老周以前是写过WCF的文章的,只是不是写在这个博客里,老周并不打算把X年前的博客导进来,要写的话,重新写吧.毕竟,那个时候写的文 ...
 - PHP_环境配置_python脚本_2017
			
Apache配置 需要安装:VC2015 httpd-2.4.16-win32-VC14.zip VC14就是2015的环境. 又比如:php-5.6.12-Win32-VC11-x86 VC11就是 ...
 - 一个难倒 3年 android开发经验 " 工程师 " 的 "bug"
			
一个关于 imageView 设置 scaleType 的问题. 就在刚才 晚上9 点多的时候,我的一个外包伙伴发一个工程代码我,叫我去看下这样一个"bug",说折腾了很久,图片选 ...
 - 『.NET Core CLI工具文档』(二).NET Core 工具遥测(应用信息收集)
			
说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Tools Telemetry 翻译:.NET Core 工具遥测(应用信息收集) .NET Cor ...
 - 用c-free 5写一个入门的程序
			
本文记录了在windows系统中使用C-FREE 5新建一个Hello HoverTree程序的步骤. 安装好C-Free 5之后,打开.新建一个工程: 附C-Free 5下载:http://hove ...
 - JDBC 练习
			
建立两个表,一个水果表一个用户表. 1.要求输入账号和密码,登陆成功显示欢迎界面,失败提示错误 2.显示选择界面,输入不同的数字,显示不同的内容,,并实现不同的功能,并返回界面 import java ...
 - HTTP各状态码解释
			
状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必 ...
 - Mybatis的基本操作案列增加以及源码的分析(二)
			
一.构建一个框架的项目的思路 首先我们先建立一个web项目,我们需要jar,mybatis-config.xml和studentDao.xml的配置随后就是dao.daoimpl.entity.的架构 ...
 - jQuery+css3侧边栏导航菜单
			
效果体验:http://hovertree.com/texiao/jquery/37/ 代码如下: <!doctype html> <html lang="zh" ...
 - dialog 模块化窗口
			
xDialog 方法 说明 参数 modal(opts) 模块化弹窗 opts={ title:'标题' , width : '宽度(400)', height : '高度(300)', button ...