请详细说一下java中append()的方法.

 我来答
香料魔法
推荐于2019-08-29 · TA获得超过2.2万个赞
知道答主
回答量:218
采纳率:60%
帮助的人:21.8万
展开全部

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

知识慧
推荐于2019-10-06 · TA获得超过4526个赞
知道答主
回答量:0
采纳率:50%
帮助的人:0
展开全部

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应用程序、分布式系统和嵌入式系统应用程序等 。

参考资料:百度百科-  网页链接

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
内测高手
推荐于2017-09-24 · TA获得超过436个赞
知道小有建树答主
回答量:312
采纳率:100%
帮助的人:131万
展开全部
Stringbuffer 有append()方法
Stringbuffer其实是动态字符串数组
append()是往动态字符串数组添加,跟“xxxx”+“yyyy”相当那个‘+’号
跟String不同的是Stringbuffer是放一起的
String1+String2 和Stringbuffer1.append("yyyy")虽然打印效果一样,但在内存中表示却不一样
String1+String2 存在于不同的两个地址内存
Stringbuffer1.append(Stringbuffer2)放再一起
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HelloWorld小码农
2019-07-20 · 专注技术知识文章发表,视频解说
HelloWorld小码农
采纳数:70 获赞数:85

向TA提问 私信TA
展开全部

本视频讲解的是Java面向对象编程语言中关于StringBuffer的知识,重点讲解了通过该对象可以去追加字符串,同时也提到了方法链的编程风格。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
东桖柳83
2008-10-19 · TA获得超过599个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:376万
展开全部
StringBuffer里面的方法吧,字符缓冲对象追加信息
比如说:StringBuffer sb=new StringBuffer();现在sb里面什么也没有
sb.append("abc");可以将字符串abc追加进sb里面.你打印sb会打印出abc
当然你还可以拉着追加
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式