小老虎的业余学习【一】通过静态工厂方法取代构造器

今天,小老虎看了一本书Effective Java书在看第二章创建和销毁对象的时候,很迷糊,于是做了一个实验。
迷糊的是静态工厂方法返回new的对象的时候,认为应该是返回同一内存地址值,多个方法同时调用这个静态方法的话,会产生数据错乱的问题。

因为,就小老虎了解的当初始化的时候静态方法会进入到静态方法方法区中。而且,每次的话应该是内存地址值一样的。同样的对象。

结果,证明了这个想法是错误的。

首先写了一个Obj

小老虎的业余学习【一】通过静态工厂方法取代构造器_第1张图片
Obj

然后写了一个静态方法,返回Obj这个类的对象。

小老虎的业余学习【一】通过静态工厂方法取代构造器_第2张图片
Obj Method

然后,打印地址值发现了地址值不一样。

小老虎的业余学习【一】通过静态工厂方法取代构造器_第3张图片
Result

于是明白了,因为每次的调用,相当于重新new,只不过是在静态方法区初始化的。

不过还考虑到一个问题,那就是静态方法区中对象的销毁。

等小老虎研究后再告诉大家吧~~~

你可能感兴趣的:(小老虎的业余学习【一】通过静态工厂方法取代构造器)