我想了解最好的方式共享引用,我不知道我已經完全理解它。如何描述共享參考?
我對共享引用的理解是當我有一個集合,並且在代碼中存在兩個或多個對該集合的引用時,如果在其中一個引用中發生更改,另一個引用不會相同並生成錯誤,正確?
問候
我想了解最好的方式共享引用,我不知道我已經完全理解它。如何描述共享參考?
我對共享引用的理解是當我有一個集合,並且在代碼中存在兩個或多個對該集合的引用時,如果在其中一個引用中發生更改,另一個引用不會相同並生成錯誤,正確?
問候
如果這些引用的一個改變對方的將是不一樣的,併產生錯誤的,正確的?
正確的,但部分。如果集合的內容通過一個引用而改變,其他引用也將指向更新的內容。
你的另一部分說,它會產生錯誤。好吧,這取決於邏輯。
class A
{
public static void main(String[] args)
{
A a1 = new A();
A a2 = a1;
A a3 = a2;
}
}
在這裏,所有的引用都指向同一個對象。所以,如果對象被修改a1
,其他參考a2
,a3
也將看到修改狀態。
想象一下,你和你的兄弟是在馬戲團,你每贏得一個氣球和一支筆的獎金。你在氣球上畫一張滿臉幸福的臉,你的兄弟會在他的臉上畫一張悲傷的臉。
現在你做不都共享引用。你們每個人都可以改變你的氣球上繪製的內容而不改變其他的。
可悲的是你不小心鬆手你的氣球,但你的哥哥,因爲他愛你,提供了與大家分享他的氣球,所以他繫上第二個字符串,並用手該字符串給你。您現在有共享引用到一個氣球。
現在,任何更改都在臉上做的氣球會被你們兩個共享。有一個氣球和兩個琴絃。如果你在氣球上畫一張滿臉幸福的臉,你的兄弟也會在氣球上找到一張笑臉,因爲它們是相同的氣球。
我們不知道「共享參考」是什麼意思。通常,「共享引用」意味着只有一個對象可以引用兩個或更多的東西。由於只有一個對象,所以通過一個引用來改變它,與通過另一個對象改變效果的效果完全相同。但是你可能用「共享參考」來表達別的意思。 –
也在研究類不變式,但不會對今天更感興趣;) – user1501127