在Java中,考虑以下代码片段:`final int x = 5; String str1 = "Hello"; char c = 'A'; String str2 = str1 + c;`。关于这段代码,下列说法正确的是:
答案解析
A选项错误,`x` 被声明为 `final`,表示它是一个常量,值不能被修改。B选项正确,字符串和字符相加会发生字符串连接,得到新的字符串。C选项正确,字符型可以进行算术运算,字符串不可以。D选项错误,`str1` 和 `str2` 虽然都是 `String` 对象,但 `str2` 是通过 `str1` 和字符 `c` 连接产生的新对象,它们在内存中不是同一个对象,除非使用了字符串常量池。
正确答案:B