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

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

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

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

首先写了一个Obj

Obj

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

Obj Method

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

Result

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容