让场景如下:
我有一个volatile String str
,该线程在多个线程之间共享。由于String
是不可变的,因此尽管我们可以更改引用str
,但它随时指向的任何对象都是只读的。
现在,让我们说我的一个线程中有一个方法读str
。
假设str
的读入不同步,即使在执行期间的某个时间引用str
被覆盖,也可以保证该方法读入的str
的Object保持不变。 ?
也就是说,如果某个方法传递了引用,它是否保存了它的本地副本(这样以后再更改原始引用对该方法没有影响)?
对于任何通用的不可变对象/基元,此语句是否正确?