请教一道JAVA编程题,十分感谢。。。

创建一个类并证明加载类的动作仅发生一次。证明该类的第一个实体的创建或者对static成员的访问都有可能引起加载最好可以直接运行,非常感谢!... 创建一个类并证明加载类的动作仅发生一次。证明该类的第一个实体的创建或者对static成员的访问都有可能引起加载

最好可以直接运行,非常感谢!
展开
 我来答
rockhb
2009-04-01 · TA获得超过344个赞
知道小有建树答主
回答量:312
采纳率:0%
帮助的人:170万
展开全部
public class SingletonDemo {
private static SingletonDemo instance = null;
int value=0;

private SingletonDemo(){
}

public static SingletonDemo getInstace(){
if(instance == null)
{
instance = new SingletonDemo();
}
return instance;
}
}
public class TestSingletonDemo{
public static void main(String[] args) {
SingletonDemo s1 =new SingletonDemo();//创建第一个实例;
s1.getInstace();
s1.value = 5;//给value赋值;
SingletonDemo s1 = new SingletonDemo();//创建第二个实例;
System.out.println(s1.value);
System.out.println(s2.value);
}
}
发现两个值都相等,证明s1的时候给value赋值,当s2创建后,value仍然是5;所以证明这个类只有一个实例;是典型的单例模式;懒汉式的单例模式;还是饥饿式的单例模式,在此不详谈了。

希望对你有帮助。
65288664
2009-03-31 · TA获得超过952个赞
知道小有建树答主
回答量:2359
采纳率:0%
帮助的人:1099万
展开全部
public class Test {
public static void main(String[] args) {
new Single();//实体的创建
//int i = Single.i;//对static成员的访问
//Single.m();//对static方法的访问
}
}

class Single {
public static int i = 0;
static {
System.out.println("load class");
}
public static void m() {}
}

单独的每一句都会打印"load class",而且仅会打印一次
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
醉雪迷尘
2009-03-31 · 超过12用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:0
展开全部
单例模式,请参照
主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
if (instance==null)
instance=new Singleton();
return instance; }
}
使用了synchronized来保证线程安全。而且通过判断避免了资源浪费。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
桥涵桃05X
2009-03-31 · 超过16用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:59.1万
展开全部
public class SingletonDemo {
private static SingletonDemo instance = null;

private SingletonDemo(){
}

public static SingletonDemo getInstace(){
if(instance == null)
{
instance = new SingletonDemo();
}
return instance;
}

public static void main(String[] args) {
for(int i =0 ;i<3;i++){

System.out.println(SingletonDemo.getInstace());
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式