java 静态类实例_Java中多个类的静态实例?

本文讨论了在Java中Singleton模式下,为何创建两个Singleton实例时,尽管静态变量k值相同,但输出却显示两个不同的内存地址。作者通过代码实例解析了静态类实例的独特性质和为何会看到两个实例。
摘要由CSDN通过智能技术生成

我是新的请不要介意,如果你发现问题愚蠢。我正在搞乱单身代码。我改变了一点(我的问题与单身无关,是的我已经删除了单实例检查)。我的问题是虽然java中的类实例只能是一个为什么输出中有两个静态类“instance”(参见hash)。我知道“new”关键字会给出一个新的内存地址(那就是用哈希打印的内容)但是isn' t静态类实例应该是一个?所以我得到两个哈希用于打印对象实例,静态变量k具有相同的值,这很好。

public class Singleton {

private static Singleton instance;

static int k;

public static Singleton getInstance(){

try{

instance = new Singleton();

System.out.println(instance);

}catch(Exception e){

throw new RuntimeException("Exception occured in creating singleton instance");

}

return instance;

}

public static void main(String[] ar) {

Singleton c1=Singleton.getInstance();

c1.k=1;

Singleton c2=Singleton.getInstance();

c2.k=2;

System.out.println(c1.k);

System.out.println(c2.k);

}

}

输出:

Singleton@15db9742

Singleton@6d06d69c

2

2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值