/**
* 单例模式:保证一个java的类只有一个实例
* 可以通过将构造方法声明成私有的,在类内部创建实例
* 对外提供一个公用方法来获取这个实例
* 饱汉模式:一般认为饱汉模式安全。每次申请一次内存,宁撑死不挨饿
* 饥汉模式:注意饥汉模式下的公用方法必须是线程同步的,原因????
* 其他模式:定义一个类,构造方法为private,所有方法为static的
*/
public class Singleton {
/**1.饱汉模式
* 每次都要生成一次对象,所以饱了。这样总的类对象不是多个了吗?
* 是指每次调用这个类时都要new一次吗?可是内存不是只有一份吗?
*/
private Singleton(){//构造方法是私有的
}
//实例化代码放在静态代码块里可以提高程序执行效率,但可能更占空间
private final static Singleton instance = new Singleton();
//提供公用方法,用于获取类内部的类实例
public static Singleton getInstance(){
return instance;
}
/**2.饥汉模式,注意其getInstance方法是synchronized的
* 使用getInstance判断,当实例为空时才生成
* 不用每次生成对象,第一次使用生成实例
* 即刚开始类实例对象为null,还未申请内存。在getInstance里针对类实例进行判断
* 为空,即饥饿状态,需要创建后返回,否则直接返回
* @author wybin
*/
private Singleton(){
}
private static instance = null;//先声明一个类本身实例成员。初始化为空。先不申请内存
public static synchronized Singleton getInstance(){
if(instance == null) instance = new Singleton();
return instance;
}
/**3.其他模式(自己猜的)
* 构造方法为private
* 其他方法全部为static
*/
private Singleton(){
}
private static instance = null;
private static Singleton getInstance(){
if(instance == null) instance = new Singleton();
return instance;
}
}
分享到:
相关推荐
### JAVA单例模式的几种实现方法 #### 一、饿汉式单例类 饿汉式单例类是在类初始化时就已经完成了实例化的操作。这种实现方式简单且线程安全,因为实例化过程是在编译期间完成的,不会受到多线程的影响。 **代码...
下面我们将详细探讨这两种模式以及它们在Java中的实现。 **单例模式** 是一种限制类实例化次数的设计模式,确保一个类只有一个实例,并提供一个全局访问点。这样做的主要目的是为了节约系统资源,例如数据库连接池...
### Java单例模式应用研究 #### 一、单例模式概述 单例模式(Singleton Pattern)作为一种最基本的创建型设计模式,其主要目的是控制一个类的实例化过程,确保在整个应用程序中仅存在一个实例,并且该实例能够被全局...
**手机生产.docx**文档可能包含了关于如何使用这两种模式实现手机生产系统的详细步骤和解释。这可能包括类的结构、接口定义、单例的实现方式以及工厂方法的具体应用。阅读这份文档将有助于理解这两种模式的结合使用...
这两种模式在实际开发中有着广泛的应用,它们分别解决了不同的问题,提高了代码的可维护性和可扩展性。 首先,我们来看单例模式。单例模式是一种保证一个类只有一个实例,并提供一个全局访问点的设计模式。这样做的...
单例设计模式又分为两种方式,懒汉式和饿汉式。 懒汉式单例是一种延迟加载的单例模式,它只有当调用 getInstance 的时候,才会初始化这个单例。这种模式的优点是可以减少资源的加载和性能上的负担,但是它需要使用 ...
在Java中,实现单例模式主要有两种方式:饿汉模式和懒汉模式。 1. **饿汉模式**: 饿汉模式是在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快,线程安全。在上述代码中,`Singleton`类的实例`...
在本文中,我们将深入探讨三种工厂设计模式——简单工厂模式、抽象工厂模式和工厂方法模式,以及两种单例模式——饿汉单例模式和懒汉单例模式。这些模式都是面向对象设计中的重要组成部分,对于理解和构建可维护、可...
Java单例设计模式是一种常用的软件设计模式,它保证一个类只有一个实例,并提供全局访问点。在Java编程中,单例模式常用于管理共享资源,如数据库连接池、线程池或者配置信息等,以提高效率并减少系统内存开销。这个...
单例模式是软件设计模式中的一种经典模式,它...通过阅读和分析这些代码,你可以更深入地理解这两种模式的实现细节及其在实际开发中的作用。同时,也可以尝试自己编写并测试不同的单例实现,以加深对单例模式的理解。
在Java实现中,有静态代理和动态代理两种方式。静态代理是由开发者显式创建代理类,而动态代理则利用Java的动态代理API在运行时动态生成代理类。 工厂模式是一种创建型设计模式,它提供了一种创建对象的统一接口,...
Java单例模式是一种常用的软件设计模式,它的核心思想是确保一个类只有一个实例,并提供全局访问点。在Java编程中,单例模式被广泛应用于控制资源的共享,例如数据库连接池、线程池或者日志系统等。在本篇文章中,...
单例设计模式又分为两种方式,懒汉式和饿汉式。 懒汉式单例 懒汉式单例模式是指只有当调用getInstance的时候,才会初始化这个单例。这种方法可以保证线程安全,又减轻了资源加载和性能上的负担。下面是一个懒汉式...
这种方式适用于需要管理多个不同类型单例的情况,但相比于前两种,它的实现较为复杂。 除了以上三种经典的实现方式,Java 1.5之后引入了枚举类型,也提供了一种更简洁且线程安全的单例实现方式。通过定义一个枚举类...
单例模式分为两种主要实现方式:饿汉模式和懒汉模式。 1. **饿汉模式**: 饿汉模式在类加载时就完成了初始化,因此类加载时会立即创建单例对象。这种方式确保了线程安全,因为对象的创建在类加载时已经完成,不会...
单例模式有两种常见的实现方式:饿汉模式和懒汉模式。 1. **饿汉模式**: - 饿汉模式的特点是在类加载时就完成了初始化,因此线程安全。它的实现方式是通过静态常量或者静态代码块来立即创建单例对象。 ```java ...
在Java中,常见的单例实现方式有两种:饿汉式(Eager Initialization)和懒汉式(Lazy Initialization)。 **饿汉式**:在类加载时就完成了初始化,所以没有线程安全问题,但是不管是否使用,都会立即创建单例对象...
Java单例模式是一种设计模式,它允许类只有一个实例,并提供一个全局访问点。在上述的场景中,我们探讨了如何通过单例模式来优化读取配置文件的过程。配置文件是许多应用程序的重要组成部分,它们通常存储应用程序...