「java单态模式」java如何实现单例模式

博主:adminadmin 2023-03-17 17:52:08 338

本篇文章给大家谈谈java单态模式,以及java如何实现单例模式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中单态模式或单例模式(Singleton)有什么意义?

你好!

存在某些类不需要实例化多次,也就是说

该类一般没有非静态的成员变量,只需要在系统运行时实例化一次就可以了,所以就存在单例模式

如有疑问,请追问。

请教关于java的单态模式

从你的代码来看只有调用getInstance()方法,才会运行System.out.println("here run init()"); 这一句吧。

就算是在properties.load(...)这一句时构造函数又加载了一次,也不会输出"here run init()"这一句啊~

晕了~

=========================================================

我编译了下你这段代码(稍微有点修改)

import java.util.*;

public class Test{

private static Test instance = null;

public static synchronized Test getInstance() {

if(instance==null){

System.out.println("here run init()");

instance = new Test();

}

return instance;

}

private Test() {

init();

}

private void init(){

Properties p = new Properties();

try{

p.load(Test.class.getResourceAsStream("/option.properties"));

//以下是取配置,设置初始化配置的代码,此处略掉

}catch(Exception ioEx){

System.out.println("配置文件option.properties不存在");

}

}

public static void main(String[] args){

Test t1 = Test.getInstance();

Test t2 = Test.getInstance();

System.out.println(t1 == t2);

}

}

结果输出:

here run init()

配置文件option.properties不存在

true

只有一次……没什么问题啊~

===============================================

我把文件创建了,又运行了一次,输出:

here run init()

true

还是只有一次……没什么问题~

==============================================

对了

p.load(new FileInputStream("option.properties"));

这样也可以

===============================================

我装的 Java 6 Update 10

对了,你的电脑是双核的吗?

可能是双核的原因

同步出现了问题

使对象初始化了两次

我家的单核的……

以前在学校学线程那一块的时候

就因为双核的原因,有的例子老是出问题

java里,什么是单态,什么是多态

单态是一种设计模式,作用是保证在Java应用程序中,一个类Class只有一个实例存在。

多态嘛就是父类实例化不同的子类得到不同的结果,例如老虎和羊的父类是动物,老虎和羊都有一个方法就是吃,当分别用老虎和羊来实例化动物类并调用吃的方法时,一个是吃肉,一个是吃草,这种区别就是多态。

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