我正在调用
sb.append(i+"\n");
其中
StringBuilder sb= new StringBuilder();
int i.
什么是 i +“\ n”施放到此处 - 字符串, StringBuffer , CharSequence ,字符数组,......?
StringBuilder 有追加(),每个参数都是一个对象,一个字符串,一个< strong> StringBuilder (这是一个私有方法), StringBuffer , CharSequence 参数,字符数组,...等等。我试图找出哪些被调用 - 希望避免调用 String 参数进行快速处理。
提前致谢。
答案 0 :(得分:8)
每当将运算符+
应用于String
和任何其他类型的变量时,就会有String
个连接。 i + "\n"
的值为String
。
java language specification涵盖了这个
如果只有一个操作数表达式是String类型,则为string 转换(第5.1.11节)在另一个操作数上执行以产生a 运行时的字符串。 字符串连接的结果是对String对象的引用,该对象是两个操作数字符串的串联。左侧操作数的字符位于新创建的右侧操作数的字符之前字符串。
因此,被调用的append()
方法是接受String
argument的方法。
作为@scottb注释,Java首先将String
并置中涉及的对象转换为String
个对象。 This is described in the JLS chapter on String
conversion.基元未包装到其包装类型中。如果引用不是null
,则在引用的对象上调用toString()
方法。如果引用为null
,则使用String
"null"
。