[OCAJP]可變長度參數和傳值


Given:

What is the result?

A. 11, 21, 31, 11, 21, 31
B. 11, 21, 31, 12, 22, 32
C. 12, 22, 32, 12, 22, 32
D. 10, 20, 30, 10, 20, 30

題解

程式第3行使用了Javavarargs使得doChange的參數長度可以變動。

Java傳遞變數內容的方式永遠為傳值(pass by value)。程式第11行直接將arr陣列物件變數所儲存的物件參考值傳給doChange方法使用,因此doChange可以對原先的arr陣列物件進行更動。程式第15行分別將arr整數陣列的整數元素傳給doChange方法,會把這些整數值複製另外一份空間出來給doChange的參數使用,因此數值在doChange的變化並不會影響到原先arr陣列物件的內容。

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章