Java 字符串缓冲区未打印';字符';

Java 字符串缓冲区未打印';字符';,java,stringbuffer,Java,Stringbuffer,我检查了下面的代码,发现不是打印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.printl

我检查了下面的代码,发现不是打印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
}
你在打电话给警察。试试这个

sb = new StringBuffer("A");
你在打电话给警察。试试这个

sb = new StringBuffer("A");

您遇到了
int
char
的转换

您正在调用构造函数


由于您传递了字符,它将转换为int值(ASCII值)并作为容量。

您遇到了
int
char
的转换

您正在调用构造函数


由于您传递了字符,它被转换为int值(ASCII值)并作为容量。

那么这应该是编译时错误。@显示否,有一个构造函数接受
int
。否字符文本“a”被解释为int。我明白了,请编辑您的帖子并放入“a”作为字符“A”,为什么当你知道它不起作用时?那么它应该是编译时错误。@显示否,有一个构造函数使用了
int
。否字符“A”被解释为int,明白了,请编辑你的帖子并放上“A”作为字符“A”,当您知道它不起作用时,为什么?另请参见。另请参见。除了将UTF-16代码单元(
char
)称为ASCII值之外,还有很好的解释。除了将UTF-16代码单元(
char
)称为ASCII值之外,还有很好的解释。