首先何为单利模式:

单利模式即多次调用同一个对象的时候,只有一个实例(这里所谓的实例就是,假如创建了两个对象,它们的hashCode相同)

下面是相关代码:

1 创建一个对象Singleton类

package Singleton;

public class Singleton {

}

  

2 我们进行测试:

package Singleton;

public class SingletonTest {
public static void main(String[] args) {
Singleton s1=new Singleton();
Singleton s2=new Singleton();
if(s1.hashCode()==s2.hashCode()){
System.out.println("同一个实例");
}else{
System.out.println("不是同一个实例");
}
} }

运行结果:不是同一个实例

下面是同一个实例的代码:

package Singleton;

public class Singleton2 {
private Singleton2() {
} private static Singleton2 instance = new Singleton2(); public Singleton2 getInstance() {
return instance;
} public void setInstance(Singleton2 instance) {
this.instance = instance;
}
}

  

package Singleton;

public class SingletonTest2 {
public static void main(String[] args) {
Singleton2 s1 = Singleton2.instance;
Singleton2 s2 = Singleton2.instance;
if (s1.hashCode() == s2.hashCode()) {
System.out.println("同一个实例");
} else {
System.out.println("不是同一个实例");
}
}
}

  

运行结果:同一个实例

所以说,为何单利模式中构造方法为何是private 修饰的,就是上面这个原因。

单利模式分为饿汉式和懒汉式,上面的案例即为饿汉式:private static Singleton2 instance =new Singleton2(); 饿汉模式中我们虽然用private 修饰,但是还有个static 修饰,即一创建Singleton2这个类就加载这个方法,这就是区分懒汉和饿汉的区别

当然懒汉式是下面这种形式:

package Singleton;

public class Singleton2 {
private Singleton2() {
} static Singleton2 instance; public Singleton2 getInstance() {
if (null != instance) {
instance = new Singleton2();
}
return instance;
} public void setInstance(Singleton2 instance) {
this.instance = instance;
}
}

  

可以理解为不是那么饿,啥时候想吃啥时候吃

第一篇写完了,写的很基础,也不好,希望自己能坚持下去

java 单利模式的更多相关文章

  1. java 单利模式设计原理,饿汉式懒汉式,开发中推荐饿汉式

    单例模式的设计:  1 //Single类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象. //对象是方法被调用时,才初始化,也叫做对象的延时加载.成为:懒汉式. //Si ...

  2. Java中的单利模式介绍

    单利模式:本来是不准备写的,但是最近发现好多公司面试时都会或多或少的提到单利模式,因此今天把单利模式拉出来说说. 定义:只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且 ...

  3. Java 设计模式之单利模式

    一.首先介绍一下单例模式:     单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式.在应用这个模式时,单例对象的类必须保证只有一个实例存在.许多时候整个系统只需要拥有一个的全局 ...

  4. Java设计模式之单利模式(Singleton)

    单利模式的应用场景: 单利模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例.并提供一个全局反访问点.单利模式是创建型模式.单利模式在生活中应用也很广泛,比如公司C ...

  5. Java中的单利模式

    单利模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该类负责创 ...

  6. java 开发中经常问到得懒汉模式 (单利模式)

    //懒汉模式 class Single { public static Single s = null; public Single (){} public static Single getInst ...

  7. java 设计模式之单利模式以及代理模式(静态)

    1:单利模式: public class Singleton { private static Singleton uniqueInstance = null; private Singleton() ...

  8. Java设计模式の单利模式

    单利模式:确保一个类最多只有一个实例,并提供一个全局访问点. 经典单利模式创建对象代码 public class Singleton { private static Singleton unique ...

  9. 《JAVA与模式》之观察者模式

    转自:http://www.cnblogs.com/java-my-life/archive/2012/05/16/2502279.html 在阎宏博士的<JAVA与模式>一书中开头是这样 ...

随机推荐

  1. 项目中可能用到的demo

    1. 轮播图   https://github.com/codingZero/XRCarouselView 2. 图表   https://github.com/Zirkfied/ZFChart

  2. List<Object>转换为JSONArray二

    package com.beijxing.TestMain; import java.util.ArrayList; import java.util.Collection; import java. ...

  3. 写css时要注意数字的浮动方向

    写css时要注意数字的浮动方向  当数字位数增加时他的方向才是正确的 text-align:right;padding-right:29px;

  4. Halcon学习之条形码实时扫描

    dev_open_window(1,1,400,400,'blue',ThisHandle) create_bar_code_model([], [], BarCodeHandle) set_bar_ ...

  5. linux查看系统类型和版本

    首先大致普及下linux系统的版本内容. 1.内核版本和发行版本区别 我的理解,内核版本就是指linux中最基层的代码,版本号如 Linux version 3.10.0-327.22.2.el7.x ...

  6. 401 Not Authorized For MSDEPLOY‏ (msdeployAgentService)

    When you get this error from msdeploy:“Error: The remote server returned an error: (401) Unauthorize ...

  7. selenium--环境搭建步骤

    1.安装Python 2.安装setuptools 3.安装pip(Python3.X自带pip) 4.安装selenium(步骤在另一个博客中已提及)

  8. CSS3 结构伪类选择器 详解

    1 CSS3 结构伪类选择器 1.E:root 匹配E元素所在的根元素 即:html 2. E:nth-child(n) (1)匹配E元素的父元素中第n个子元素,(2)且该位置的子元素类型必须是E类型 ...

  9. 比较两个NSDate类型的参数相差的时间差

    +(NSInteger)getDaysFrom:(NSDate *)serverDate To:(NSDate *)endDate { NSCalendar *gregorian = [[NSCale ...

  10. jquery取框架当前的url

    前提,当前frame无名或动态生成的: var url = eval($("#ifr1").attr("name")+".location.href; ...