length和capacity返回的都是一个int值,初学者往往分不清哪一个才是StringBuffer的字符长度。
从释意上看,length表示长度,capacity表示容量;
对StringBuffer进行append等操作时,首先会进行容量的判断,如果当前容量不足以存储(即capacity小于添加后的总长度)就会生成一个新的capacity保证StringBuffer能够装下你的所有内容(这其实就是对数据进行扩容);length表示StringBuffer中字符的实际长度。
对StringBuffer进行扩容是一个比较消耗资源的操作,特别是当这个buffer比较大时,建议在使用StringBuffer时指定适当的容量。 |