1. 程式人生 > >JAVA一些趣味題(不間斷總結)

JAVA一些趣味題(不間斷總結)

1、

無意間從網上看到這麼一個題:


結果是什麼呢?

無非是true和false(好像是廢話),答案是:

false
true
true
true
先說一下第四個和第一個對比,第一個的String b = a+"b";而不是String b="a"+"b"; 而第四個說白了String abc="abc"和String abc3="ab"+"c"是一樣的,這個可以看生成的class檔案的
於是第三個輸出繼續和第一個對比,第三個輸出從反編譯看到也是“abc”,但不要忘了ab2他是final關鍵字,而final關鍵字的原始碼裡儲存資料的方式為privatefinalcharvalue[];
表明String不僅不能被複寫,連它裡面存陣列的域都是final的,意思你一旦初始化它你就沒法改它了。於是第二個輸出就能解釋了。
這個題主要考的是final關鍵字的使用和String的值存放的理解(我是這樣理解的),這裡有個很好的解釋可以參考一下: http://bbs.csdn.net/topics/391070616