单利模式反射攻击

来源:8-7 单例设计模式-反射攻击解决方案及原理分析

丿恶搞丿

2019-08-05

不明白为什么:

图片描述

图片描述

写回答

1回答

geelylucky

2019-08-05

同学,你就把newInstance()看作是调用构造函数,当调用getInstance()后,会根据判断决定是否调用构造函数,第一次调用getInstance()肯定是要去调用构造函数的,当再去调用newInstance(),又去调用构造函数,这个时候lazySingleton不为空,就抛异常。

先调用newInstance(),再调用getInstance(),因为getInstance()做了判断,根据lazySingleton是否有值决定要不要创建对象,所以不会抛异常。

0
0

Java设计模式精讲-Debug方式+内存分析

系统学习设计原则,设计模式,锤炼编码内功,赢取高薪Offer

3430 学习 · 407 问题

查看课程