请详细说说
《说文》:(篎) 小管謂之篎。釋樂。大管謂之簥。其中謂之篞。小者謂之篎。許無簥篞字者。許所據不从竹。从竹。眇聲。亡沼切。二部。
《康熙字典》:《類篇》弭沼切《海篇》音渺。《類篇》管之小者。與同。
字源变化:
Java中的append( )方法其实是创建了一个新的数组,扩大了长度,将需要添加的字符串给复制到这个新的数组中。
JAVA中Stringbuffer有append( )方法:
而Stringbuffer是动态字符串数组,append( )是往动态字符串数组添加,跟“xxxx”+“yyyy”相当‘+’号。
跟String不同的是Stringbuffer是放一起的,String1+String2和Stringbuffer1.append("yyyy")虽然打印效果一样,但在内存中表示却不一样、
String1+String2 存在于不同的两个地址内存,Stringbuffer1.append(Stringbuffer2)放再一起。
StringBuffer是线程安全的,多用于多线程。
扩展资料
查看StringBuffer的append()方法
如图所示代码:
1、进入append方法
@Override
public synchronized StringBuffer append(String str) {
toStringCache = null;
super.append(str);
return this;
}
其中toStringCache是Cleared whenever the StringBuffer is modified.
2、进入AbstractStringBuilder的append()方法
public AbstractStringBuilder append(String str) {
if (str == null)
return appendNull();
int len = str.length();
ensureCapacityInternal(count + len);
str.getChars(0, len, value, count);
count += len;
return this;
}
如果参数str为空返回appendNull(); 该方法最终返回return this.
3、进入ensureCapacityInternal()方法
private void ensureCapacityInternal(int minimumCapacity) {
// overflow-conscious code
if (minimumCapacity - value.length > 0) {
value = Arrays.copyOf(value,
newCapacity(minimumCapacity));
}
}
copyOf(char[] original, int newLength)的方法查JDK帮助文档可知:复制指定的数组,复制具有指定的长度。
4、进入String的getChars()方法
public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin) {//0,len=5,value=[hello],count=5
if (srcBegin < 0) {
throw new StringIndexOutOfBoundsException(srcBegin);
}
if (srcEnd > value.length) {
throw new StringIndexOutOfBoundsException(srcEnd);
}
if (srcBegin > srcEnd) {
throw new StringIndexOutOfBoundsException(srcEnd - srcBegin);
}
System.arraycopy(value, srcBegin, dst, dstBegin, srcEnd - srcBegin);
}
5、最终调用的是System.arraycopy的方法:
public static void arraycopy(Object src,
int srcPos,
Object dest,
int destPos,
int length)
/*src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目的地数据中的起始位置。
length - 要复制的数组元素的数量。
*/
System.arraycopy([world], 0, [hello], 5, 5);
将指定源数组中的数组从指定位置复制到目标数组的指定位置。
参考资料:百度百科-append
有一篇讲解字符串连接的文章写得很细,并且分析了各种字符串连接方法的效率,你可以去找找
JAVA 中 Stringbuffer 有append()方法
Stringbuffer其实是动态字符串数组
append()是往动态字符串数组添加,跟“xxxx”+“yyyy”相当那个‘+’号
跟String不同的是Stringbuffer是放一起的
String1+String2 和Stringbuffer1.append("yyyy")虽然打印效果一样,但在内存中表示却不一样
String1+String2 存在于不同的两个地址内存
Stringbuffer1.append(Stringbuffer2)放再一起
使用方法举例:
StringBuffer s = new StringBuffer();
s.append("Testing String");
s.append(" ");
s.append("Concatenation Performance");
String s3 = s.toString();
打印结果:Testing String Concatenation Performance
扩展资料:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。
参考资料:百度百科- 网页链接
本回答被网友采纳绝经前的症状都什么表现?详细说说闭经是女性常见的一种症状,少女在12岁左右会来月经,年满18岁尚无月经来潮者称为原发性闭经;当已来月经后,其后出现3个月以上无月经者,称继发性闭经;凡妊娠、哺乳或绝经后无月经者,则称生理性闭经。生理性闭经是一种正常的生理现象,与疾病无关,无闭经的危害,而原发性和继发性闭经却往往与某些疾病有关。其类型有:1、子宫性闭经。2、卵巢性闭经。3、垂体性闭经。4、丘脑下部闭经。其中,第四种闭经最多见,包括有精神性因素、营养不良或慢性消耗性疾病以及长期服避孕药、闭经泌乳症、多囊卵巢综合征等引起的均属此类闭经。此外,甲状腺、肾上腺、胰腺等功能紊乱也可能导致闭经。美国鲁舒娅,可以帮助你实现延缓绝经的期望,即使贵些,我也觉得很值啦。
StringBuffer里面的方法吧,字符缓冲对象追加信息
比如说:StringBuffer sb=new StringBuffer();现在sb里面什么也没有
sb.append("abc");可以将字符串abc追加进sb里面.你打印sb会打印出abc
当然你还可以拉着追加
Stringbuffer 有append()方法
Stringbuffer其实是动态字符串数组
append()是往动态字符串数组添加,跟“xxxx”+“yyyy”相当那个‘+’号
跟String不同的是Stringbuffer是放一起的
String1+String2 和Stringbuffer1.append("yyyy")虽然打印效果一样,但在内存中表示却不一样
String1+String2 存在于不同的两个地址内存
Stringbuffer1.append(Stringbuffer2)放再一起
本回答被提问者采纳