Java——设计模式(单例模式)
* 设计模式: 对问题行之有效的解决方式,其实他是一种思想。
* 1.单例设计模式。
*
解决问题: 就是可以保证一个列在内存中的对象唯一性。
*
*如何保证对象的唯一性:
*1. 不允许其他程序用new创建该类对象。
*2. 在该类中创建一个本类实例。
*3. 对外提供一个方法让其他程序可以获取该对象。。
*
*步骤:
*1.私有化该类构造函数。
*2.通过new在本类中创建一个本类对象。
*3.定义一个公有的方法,将创建的对象返回。
*
*/
第一种方式 构建单例模式 饿汉式
final class SingleTest
{
//设为private 保证外界不能访问
static保证其唯一性 类一加载对象就已经存在的
private static SingleTest s = new SingleTest();
private SingleTest(){};//构造函数私有化 保证不能new
public static SingleTest getInstance()//对外提供一个public方法。 比返回一个单例对象
{
return s;
}
}
=========================================================================================================
第二种方式
构建单例模式 懒汉式
//延迟加载形式。
final class SingleTest2//类加载进来 , 没有对象, 只有调用了getInstance()方法时, 才会创建对戏。
{
private static SingleTest2 s = null;//设为private 保证外界不能访问。。 static保证其唯一性
private SingleTest2(){};//构造函数私有化 保证不能new
public static SingleTest2 getInstance()//对外提供一个public方法。 比返回一个单例对象
{
if(s==null)
{
s = new SingleTest2();
}
return s;
}
}
==============================================线程安全模式======================
//饿汉模式(线程安全模式)
class Single
{
private final Single s = new Single();
private Single(){};
public synchronized Single getInstace()
{
return s;
}
}
//懒汉模式(线程安全模式)
class Single2
{
private static Single2 s = null;
private Single2(){};
public static Single2 getInstance()
{
if(s==null)
{
synchronized(Single2.class)
{
if(s==null)
{
s = new Single2();
}
}
}
return s;
}
l }
====================================================================================
// TODO Auto-generated method stub
/*
* Runtime没有构造方法 ,说明该类不可以创建对象。又发现还有非静态的方法,
* 说明该类应提供静态的返回该类对象的方法。
* 而且只有一个,说Runtime类使用了单例模式
*/
Runtime r = Runtime.getRuntime();
版权声明:本文为博主原创文章,未经博主允许不得转载。
Java——设计模式(单例模式)的更多相关文章
- java设计模式单例模式 ----懒汉式与饿汉式的区别
常用的五种单例模式实现方式 ——主要: 1.饿汉式(线程安全,调用率高,但是,不能延迟加载.) 2.懒汉式(线程安全,调用效率不高,可以延时加载.) ——其他: 1.双重检测锁式(由于JVM底层内部模 ...
- Java设计模式の单例模式
-------------------------------------------------- 目录 1.定义 2.常见的集中单例实现 a.饿汉式,线程安全 但效率比较低 b.单例模式的实现:饱 ...
- JAVA设计模式-单例模式(Singleton)线程安全与效率
一,前言 单例模式详细大家都已经非常熟悉了,在文章单例模式的八种写法比较中,对单例模式的概念以及使用场景都做了很不错的说明.请在阅读本文之前,阅读一下这篇文章,因为本文就是按照这篇文章中的八种单例模式 ...
- Java设计模式 - - 单例模式 装饰者模式
Java设计模式 单例模式 装饰者模式 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 静态代理模式:https://www.cnblogs.com/StanleyBlogs/p/1 ...
- 【设计模式】Java设计模式 - 单例模式
[设计模式]Java设计模式 - 单例模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 分享学习心得,欢迎指正,大家一起学习成长! 原创作品,更多关注我CSDN: ...
- Java 设计模式 —— 单例模式
1. 概念: 单例模式是一种常用的软件设计模式.核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果 ...
- Java设计模式 - 单例模式 (懒汉方式和饿汉方式)
概念: Java中单例模式是一种常见的设计模式,单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 单例模式的写法有好几种,这 ...
- java设计模式——单例模式(一)
一. 定义与类型 定义:保证一个类仅有一个实例,并提供一个全局访问点 类型:创建型 二. 适用场景 想确保任何情况下都绝对只用一个实例 三. 优缺点 优点: 在内存里只有一个实例,减少了内存开销 可以 ...
- JAVA设计模式--单例模式
单例设计模式 Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点. 核心知识点如下: (1) 将采用单例 ...
- Java设计模式-单例模式(Singleton)
单例对象(Singleton)是一种常用的设计模式.在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在.这样的模式有几个好处: 1.某些类创建比较频繁,对于一些大型的对象,这是一笔 ...
随机推荐
- App Store--心酸的上线路,说说那些不可思议的被拒理由
yoyeayoyea 您的应用包括色情内容(色情交易,色情展示). 原因是我们的销售人员,把几张艺术照放在个人相册里(头像),换成卡通头像,通过. 颜小风 被拒很正常 一次通过不正常. 之前上线 ...
- [__NSCFString absoluteURL]错误的解决方案
Xcode提醒错误: -[__NSCFString absoluteURL]: unrecognized selector sent to instance 0x8c4d3a0 *** Termina ...
- Android 自带图标库 android.R.drawable
在xml文件中调用. android:title="@string/secure_connect"android:orderInCategory="100"an ...
- goldengate复制过程字符集处理一例
源端是oracle, al32utf8,表里有乱码,目标端是sybase cp936,两端的DB都不能改字符集,而且源端是目标端的超集,当复制有乱码的数据(非中文或英文数字等),目标端replicat ...
- Queryable.GroupBy<TSource, TKey> 方法 (IQueryable<TSource>, Expression<Func<TSource, TKey>>) 转
根据指定的键选择器函数对序列中的元素进行分组. 命名空间: System.Linq程序集: System.Core(在 System.Core.dll 中) 语法 C# C++ F# VB p ...
- String创建对象的个数--西北狼
public class StringDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto ...
- 2016 - 1 -17 GCD主队列与全局队列
一:主队列 1.概念:每一个应用程序对应唯一一个主队列,直接GET即可:在多线程开发中,使用主队列更新UI dispatch_queue_t q = dispatch_get_main_queue() ...
- C++语法疑点
1函数模板不支持偏特化 2类内部的typedef 必须放在最前面,不然没法用: 疑问:为什么类声明处定义的函数体中能出现在后面在声明的成员变量??因为C++对于成员函数函数体的解析是放在整个类声明完毕 ...
- 让Tomcat支持中文文件名
--参考链接:http://blog.chinaunix.net/uid-26284395-id-3044132.html 解决问题的核心在于修改Tomcat的配置,在Server.xml文件中添加一 ...
- GridView按钮事件
1.html代码 <asp:TemplateField HeaderText="操作"> <ItemTemplate> <div style=&quo ...