今天,小老虎看了一本书Effective Java
书在看第二章创建和销毁对象
的时候,很迷糊,于是做了一个实验。
迷糊的是静态工厂方法返回new
的对象的时候,认为应该是返回同一内存地址值
,多个方法同时调用这个静态方法的话,会产生数据错乱的问题。
因为,就小老虎了解的当初始化的时候静态方法会进入到静态方法方法区中。而且,每次的话应该是内存地址值一样的。同样的对象。
结果,证明了这个想法是错误的。
首先写了一个Obj
类
然后写了一个静态方法,返回Obj这个类的对象。
然后,打印地址值
发现了地址值
不一样。
于是明白了,因为每次的调用,相当于重新new,只不过是在静态方法区
初始化的。
不过还考虑到一个问题,那就是静态方法区
中对象的销毁。
等小老虎研究后再告诉大家吧~~~