在學習Java語言時,常常聽到人家說mutable和immutable,到底是甚麼意思呢?如果從字面上的意思來說的話,mutable代表可改變的,immtable代表不可改變的,還是很抽象,對吧!,就讓我們用實例來說明吧!
有四個名詞要認識mutable value,immutable value,mutable reference,immutable reference,就讓我一一來說明吧!
1. mutable reference point to immutable values:
舉例來說:
String s1="a";
這個宣告代表我們創建一個名叫s1的reference,它指向一個String type的物件,名為"a", 而reference指向可以改變,但物件的值不能改變
所以以下code的輸出結果會是a,因為s2已經指向了"a"這個物件,而物件的值不能被改變
String s1="a";
String s2=s1;
s1="b";
System.out.println(s2);
2. immutable reference point to mutable values
final StringBuilder s= new StringBuilder("hello");
final 在這裡的用法和C++ const(點擊可參考我之前文章)類似,意思就是指向不可變,也就是s永遠都要指向"hello"這個物件,但我們可以改變"hello" 這個 StringBuilder 類型物件的值
總結:
mutable value: 值可以改變
immutable value: 值不能改變
mutable reference: 可以指向其他地方
immutable reference: 不可以指向其他地方
參考資料:
1. edx course: MITx: 6.005.1x Software Construction in Java
2. https://docs.oracle.com/javase/7/docs/api/java/lang/String.html
訂閱:
張貼留言 (Atom)
-
醫師選科 這個網頁主要目的是為了幫助 面對選科困惑的醫學系畢業生們 希望結果能對你/妳有幫助 測驗總共18題 點擊下面按鈕 馬上開始吧 Click Me! 跟病人建立長久關係 喜歡 還好 不喜歡 學習數學物理知識 喜歡 還好...
-
在放射治療裡面, 有一個很基礎的概念, 就是在定義放射治療的範圍, 其中有所謂的 GTV, CTV, PTV的概念 1. GTV(gross tumor volume): 就是影像上(CT, MRI,echo...)或是肉眼,理學檢查能夠看到的腫瘤範圍 2. CTV(cli...
-
在醫學論文裡面, 有幾個名詞經常被用來描述結果, 分別是odds ratio, risk ratio(relative risk), risk difference, hazard ratio, 以下來一一說明! 1. odds ratio: 中文翻譯成勝算比, 簡單舉例, 如...
作者已經移除這則留言。
回覆刪除code 輸出的結果會是 a
回覆刪除感謝您的指正 我馬上改XD
刪除