在 Java 中,使用 == 運算子比較兩個物件的參考(reference),而使用 equals() 方法比較兩個物件的值(value)。
根據程式片段,我們建立了兩個新的字串物件 st1 和 st2,兩者都包含相同的字串 "Good!"。但是由於 new 關鍵字會在記憶體中建立新的物件,因此 st1 和 st2 是不同的物件實例。
因此,下面是 b1 和 b2 的值:
b1 的值為 false。因為 st1 和 st2 是不同的物件實例,所以它們的參考不同。使用 == 運算子比較時,會得到 false。
b2 的值為 true。因為 String 類別的 equals() 方法會比較兩個物件的內容,而不是它們的參考。由於 st1 和 st2 包含相同的字串 "Good!",所以 equals() 方法會傳回 true。
因此,程式片段執行後,b1 的值為 false,b2 的值為 true。