Given:



What is result?

A.

Successful

B.

Unsuccessful

C. Compilation fails
D. An exception is thrown at runtime

題解

第5行的str3一開始為null,接著在第7行直接使用「+」運算子與字元做字串連接,這樣的方式在Java是可被允許的。參考至null的字串在進行字串連接時會自動被改為長度為4的「null」字串,因此這題的str3變數串接到最後的結果為「nullJava」,「Java」和「nullJava」明顯不是一樣的字串,因此輸出為「Unsuccessful」。

以下再給一個例子:

輸出結果為:

nullc
nullc
nullc
542
nullc

這裡要注意的地方是,「+」運算子的運算元必須要至少有一個是字串或是物件,才會被當作是字串連接,否則為加法運算。不知型態的null與字元c(字元值為99)無法做加法運算,因此會發生編譯錯誤。