「java懒汉」java懒汉式单例模式

博主:adminadmin 2022-12-15 08:51:09 80

今天给各位分享java懒汉的知识,其中也会对java懒汉式单例模式进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中,请写单例模式,饿反式,懒汉式,并说明使用场合!

是饿汉式吧,希望对你有用,单例模式其实就是构造方法是私有的,通过getInstance()来取得实例。

package cn.ineeke.util;

/**

* 单利模式——懒汉式

* @author Neeke

*

*/

public class DB {

private static DB db = null;

public static DB getInstance(){

if(db == null){

db = new DB();

}

return db;

}

}

package cn.ineeke.util;

/**

* 单利模式——饿汉式

* @author Neeke

*

*/

public class DB {

private static DB db = new DB();

public static DB getInstance(){

return db;

}

}

这种静态初始化的方法是自己被加载时就自己实例化,被形象的称之为饿汉式单例类。而原先的单例模式处理方式要在第一次被引用的时候才会被实例化,就被称为懒汉式单例类。

由于在多线程访问时懒汉式可能会出现创建出多个实例,而若对其使用synchronized的话,则又会降低程序性能。所以推荐使用饿汉式。

java开发单利模式的饿汉模式和懒汉模式的区别

所谓懒汉式,就是程序比较懒,只有需要他的时候,才会创建对象,如果有了,就不在创建,这个类的构造函数一定是私有的。所以在创建对象时,需要进行检查,所以这时候很慢,一旦对象完成创建,加载类时,速度很快。至于饿汉式,就是这个类时刻准备着,一旦加载这个类,立马创建对象,所有类很多的时候,加载显的程序运行缓慢,这个类的构造函数也是私有的。

java常用的几种单例模式(懒汉式,饿汉式

单件模式用途:

单件模式属于工厂模式的特例,只是它不需要输入参数并且始终返回同一对象的引用。

单件模式能够保证某一类型对象在系统中的唯一性,即某类在系统中只有一个实例。它的用途十分广泛,打个比方,我们开发了一个简单的留言板,用户的每一次留言都要将留言信息写入到数据库中,最直观的方法是没次写入都建立一个数据库的链接。这是个简单的方法,在不考虑并发的时候这也是个不错的选择。但实际上,一个网站是并发的,并且有可能是存在大量并发操作的。如果我们对每次写入都创建一个数据库连接,那么很容易的系统会出现瓶颈,系统的精力将会很多的放在维护链接上而非直接查询操作上。这显然是不可取的。

如果我们能够保证系统中自始至终只有唯一一个数据库连接对象,显然我们会节省很多内存开销和cpu利用率。这就是单件模式的用途。当然单件模式不仅仅只用于这样的情况。在《设计模式:可复用面向对象软件的基础》一书中对单件模式的适用性有如下描述:

1、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。

2、当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

下面对单件模式的懒汉式与饿汉式进行简单介绍:

1、饿汉式:在程序启动或单件模式类被加载的时候,单件模式实例就已经被创建。

2、懒汉式:当程序第一次访问单件模式实例时才进行创建。

如何选择:如果单件模式实例在系统中经常会被用到,饿汉式是一个不错的选择。

java开发单利模式的饿汉模式和懒汉模式的区别安全问题

楼主您好

所谓懒汉式,就是程序比较懒,只有需要他的时候,才会创建对象,如果有了,就不在创建,这个类的构造函数一定是私有的。所以在创建对象时,需要进行检查,所以这时候很慢,一旦对象完成创建,加载类时,速度很快。至于饿汉式,就是这个类时刻准备着,一旦加载这个类,立马创建对象,所有类很多的时候,加载显的程序运行缓慢,这个类的构造函数也是私有的。

JAVA 懒汉式 饿汉式 区别

懒汉:开始不初始化

public class Yugi{

    private static Yugi yugi = null;

    private Yugi(){

    }

    public static Yugi getInstance(){

        yugi = new Yugi();

        return yugi;

    }

}

饿汉:一开始就初始化

public class Yugi{

    private static Yugi yugi = new Yugi();

    private Yugi(){}

    public static Yugi getInstance(){

        return yugi;

    }

}

java懒汉的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java懒汉式单例模式、java懒汉的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-15,除非注明,否则均为首码项目网原创文章,转载请注明出处。