展开全部

Java中的append( )方法其实是创建了62616964757a686964616fe58685e5aeb931333366306462一个新的数组,扩大了长度,将需要添加的字符串给复制到这个新的数组中。

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);

将指定源数组中的数组从指定位置复制到目标数组的指定位置。

java append函数_请详细说一下java中append()的方法.相关推荐

  1. java length()函数_小猿圈介绍java函数式编码结构及优势

    对于java大家都已经不陌生了吧,今天小猿圈Java讲师就分享一篇关于java函数式编码结构及优势的知识点,希望对于学习java的你有一定的帮助,想学习就需要积累. 探讨三种下一代JVM语言:Groo ...

  2. python中timeit函数_一日一技:Python中的timeit方法

    timeit()方法 python中的timeit()方法, 它用于获取代码的执行时间.该库将代码语句运行一百万次,并提供从集合中花费的最短时间.这是一种有用的方法,有助于检查代码的性能. 语法如下: ...

  3. java 累加函数_请你编写一个方法(函数),功能要求从参数x累加到y,并返回累加后的整数结果。...

    public class TestFor { public static void main(String[] args) { Scanner scanner = new Scanner(System ...

  4. java replaceall函数_你真的会用java replaceAll函数吗?

    replace.replaceAll.replaceFirst这三个函数会java的同学估计都用过,笔者已经用了2年多,可是,我们真的懂他们吗? 概述一下他们三个的用法: · replace(Char ...

  5. java 内存测试_请你说一下java jvm的内存机制

    Java虚拟机栈是线程私有的,它的生命周期与线程相同. 局部变量表存放了编译时期可知的各种基本数据类型和对象引用.局部变量表所需的内存空间在编译时期完成分配,当进入一个方法时,这个方法需要在栈帧中分配 ...

  6. 请尽可能说出js中数组的方法,最少3个,越多越好

    我接下来要把数组方法全都过一遍,顺手做个整理. 至于为什么整理这个,最近总听说面试经常会问到这个问题, 面试官灵魂发问:请尽可能说出js中数组的方法,最少3个,越多越好 据可靠消息了解到,如果你回答的 ...

  7. java main函数_一行JAVA代码如何运行起来?

    在程序员的世界中,你总会听到一句"PHP是世界上最好的语言"的调侃.然而在你进入软件程序开发之后,你会发现即使开发语言千千万,最盛行的还是JAVA.从淘宝的技术变迁中我们可以见一些 ...

  8. append()方法_超详细教程 | pandas合并之append和concat

    ​ 本篇文章主要介绍了pandas中对series和dataframe对象进行连接的方法:pd.append()和pd.concat(),文中通过示例代码对这两种方法进行了详细的介绍,希望能对各位py ...

  9. python中的pop函数和append函数_对python中的pop函数和append函数详解

    pop()函数 1.描述 pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值. 语法 pop()方法语法: list.pop(obj=list[-1]) 2.参数 obj ...

  10. java同名函数_浅谈Java 继承接口同名函数问题

    在Java中如果一个类同时继承接口A与B,并且这两个接口中具有同名方法,会怎么样? 动手做实验: interface A{ void fun(); } interface B{ void fun(); ...

最新文章

  1. jQuery插件开发全解析
  2. window下部署ELK(6.2.2系列)
  3. Java基础篇(01):基本数据类型,核心点整理
  4. React Native图片缓存解决方案
  5. 三菱PLC编程语言的特点
  6. 利用winrar安全加密
  7. win10安装杜比驱动
  8. 51定时器PWM调节
  9. air202-DTU接入ONENET平台简单教程
  10. 笔记本不用fn也能用功能键
  11. 如何设置电脑桌面动态壁纸
  12. pytorch GradScale 梯度缩放算子
  13. html table 固定表头和列
  14. Wannafly挑战赛14 A 直角三棱锥
  15. 牛客小白月赛8 F-数列操作 (有序表)
  16. ESP32 单片机学习笔记 - 08 - WebSocket客户端
  17. 用什么方式推广莆田鞋最好?C原版本真的能买吗
  18. 解释为何 remote()-transact可以直接调用-transact?
  19. 产品经理的对于产品岗位杂谈(一)
  20. 区块链中公有链、联盟链和私链的区别

热门文章

  1. 信号完整性基础01:从频域出发理解信号(1)-时域和频域
  2. tableau高级绘图(十二)-tableau绘制辐射堆叠图
  3. linux 学习决心书
  4. 略晓网:经验真的能换钱
  5. 简单谈谈XML DOM parser
  6. Shel编程之条件语句 条件 if ,case语句
  7. html id命名规范,关于Html class id 命名规范
  8. Android性能优化系列篇(二):启动优化
  9. 网站项目计划书(参考)
  10. 苏云技术导航网站源码 附后台