导航:首页 > 编程语言 > java饿汉式

java饿汉式

发布时间:2022-06-04 22:51:47

java单例模式饿汉式会有线程安全问题吗

1、答案:不会有线程安全问题。

2、首先,一个类可以被使用必须经过 加载、连接和初始化
3、饿汉模式的对象创建是在初始化的时候创建的,初始化操作是jvm执行的(会给类变量赋初始值,执行静态代码块等,类变量是用static修饰的变量),并且在我们看来一个类的初始化只会执行一次(jvm会控制),是不会有线程安全问题出现的
3、纠错:不是“类一加载就实例化”,而是类先加载、连接(此步骤执行时间不固定,但是在初始化执行前必须执行结束)。初始化执行的时机是你new了一个对象,或者使用了反射机制,或者调用类的静态变量和方法或者启动有main方法的类

❷ JAVA 懒汉式 饿汉式 区别

这个是在单例设计模式中提及的,就是一个类希望不让它不停的实例化对象,只能有一个对象
饿汉式(还没使用到这个对象时就已经实例化了)
public class Text{
private Text(){}//将构造函数私有化

private static Text t=new Text();//私有的Text型变量
public static Text getText(){
return t;
}
}
懒汉式(使用到的时候才实例化)
public class Text{
private Text(){}//将构造函数私有化

private static Text t;//私有的Text型变量(未实例化)
public static Text getText(){
if(t==null){
t=new Text();
}
return t;
}
}
懒汉式性能上应该是比饿汉式好,但是要考虑的东西多一点,还需要考虑线程同步的时候可能带来的隐患(此处没写)

❸ Java饿汉式多大机率出现多个对象

publicclassMyFactory{
//这里的volitale不可或缺
=null;

privateMyFactory(){
}

(){
if(factory==null){
synchronized(MyFactory.class){
if(factory==null){
factory=newMyFactory();
}
}
}
returnfactory;
}
}

如上上面的代码,如果你不加volitale关键字,那么由于可见性的原因,多线程并发情况下就可能new多个对象,至于概率多大,这个没有一个准确的值,要看你线程并发情况。

我的这篇文章对线程安全有详细的分析java线程安全

如果觉得我的回答对你有帮助,可以关注简书--早晚程序员或者微信公众号--早晚程序员

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

单件模式用途:
单件模式属于工厂模式的特例,只是它不需要输入参数并且始终返回同一对象的引用。
单件模式能够保证某一类型对象在系统中的唯一性,即某类在系统中只有一个实例。它的用途十分广泛,打个比方,我们开发了一个简单的留言板,用户的每一次留言都要将留言信息写入到数据库中,最直观的方法是没次写入都建立一个数据库的链接。这是个简单的方法,在不考虑并发的时候这也是个不错的选择。但实际上,一个网站是并发的,并且有可能是存在大量并发操作的。如果我们对每次写入都创建一个数据库连接,那么很容易的系统会出现瓶颈,系统的精力将会很多的放在维护链接上而非直接查询操作上。这显然是不可取的。
如果我们能够保证系统中自始至终只有唯一一个数据库连接对象,显然我们会节省很多内存开销和cpu利用率。这就是单件模式的用途。当然单件模式不仅仅只用于这样的情况。在《设计模式:可复用面向对象软件的基础》一书中对单件模式的适用性有如下描述:
1、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
2、当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
下面对单件模式的懒汉式与饿汉式进行简单介绍:
1、饿汉式:在程序启动或单件模式类被加载的时候,单件模式实例就已经被创建。
2、懒汉式:当程序第一次访问单件模式实例时才进行创建。
如何选择:如果单件模式实例在系统中经常会被用到,饿汉式是一个不错的选择。

阅读全文

与java饿汉式相关的资料

热点内容
演化算法与搜索算法区别 浏览:486
php输出javascript 浏览:882
如何新建密码访问文件夹 浏览:60
什么app最搞笑 浏览:94
CS编辑命令 浏览:947
程序员编码是指什么 浏览:525
在云服务器上安装软件 浏览:270
什么app可以免费听周董的歌 浏览:364
netmvcpdf 浏览:209
arp服务器回送的是什么地址 浏览:103
生物学pdf百度云 浏览:963
markdown源码包怎么下载 浏览:598
餐饮app开发公司哪个好 浏览:637
解压盒子2无广告 浏览:623
华为鸿蒙系统怎么放大单个文件夹 浏览:587
phpwin864 浏览:914
boll优化源码公式 浏览:906
连接服务器端口号是如何确定的 浏览:14
gsm源码 浏览:475
单片机点阵滚动 浏览:407