java.lang.String的问题

来源:百度知道 编辑:UC知道 时间:2024/05/20 02:46:53
程序题目是这样的
String str="420";
str+=42;
System.out.println(str);
为什么这个会编译成功呢?不是42应该写成“42”的吗?

字符串在与其他类型的数据连接时会自动将其他数据转换成字符串类型。 因此42可,“42”也可。

参看Java API文档的解释

Java 语言提供对字符串串联符号("+")和其他对象到字符串的转换的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,该方法由 Object 类定义,并可被 Java 中所有类继承。有关字符串串联和转换的更多信息,请参阅 Gosling、Joy 和 Steele 合著的《The Java Language Specification》。

不知道能否明白。

str = "420" + 42 ==> 42042

被转换成string,如不这样,恐怕输出int就成了个麻烦事了吧

隐士转化,java会把42转化为“42”然后加到str上