刚才查看了一下原码 StringBuffer中有一个默认构造器 public StringBuffer() { super(16); } 且 StringBuffer 继承 AbstractStringBuilderAbstractStringBuilder类中有 /** * The value is used for character storage. */ char value[]; /** /** * Creates an AbstractStringBuilder of the specified capacity. */ AbstractStringBuilder(int capacity) { value = new char[capacity]; } 所以StringBuffer buffer = new StringBuffer();的时候 只是创建了一个长度为16的char数组,
回答错误!!!System.out.println("".equals(buffer));
false
"" 生成了对象 指向的内容为空
当一个对象为 null 时 不能调用.equals()方法
-------
我的理解 欢迎指正
buffer当然不和""相等了,一个是String,一个是StringBuffer,类型不同是不可能equal的你试试这个
System.out.println("".equals(buffer.toString()));
楼主问buffer的值是什么,谁说buffer就是""了?
StringBuffer中有一个默认构造器
public StringBuffer() {
super(16);
}
且 StringBuffer 继承 AbstractStringBuilderAbstractStringBuilder类中有
/**
* The value is used for character storage.
*/
char value[]; /** /**
* Creates an AbstractStringBuilder of the specified capacity.
*/
AbstractStringBuilder(int capacity) {
value = new char[capacity];
}
所以StringBuffer buffer = new StringBuffer();的时候 只是创建了一个长度为16的char数组,
.toString()后为"";