我检查了下面的代码,发现它不是打印A123而是引用123。
有人可以解释这里发生了什么。
public class Test{
public static void main(String[] args) {
StringBuffer sb = null;
sb = new StringBuffer('A');
sb.append('1');
sb.append('2');
sb.append('3');
System.out.println(sb);//Printing 123
}
答案 0 :(得分:4)
您正在呼叫constructor that specifys the capacity。试试这个
sb = new StringBuffer("A");
答案 1 :(得分:1)
您遇到了int
到char
次转化。
您正在调用构造函数StringBuffer(int capacity)。
public StringBuffer(int capacity) {
super(capacity);
}
由于你传递了char,它转换为int值(ASCII值)并作为容量。