zoukankan      html  css  js  c++  java
  • StringBuffer与StringBuilder的简单理解

    联系:两者都适用于字符串的操作,都可以随便对字符串的内容进行变更操作,都继承至AbstractStringBuilder。

    区别:StringBuffer是线程安全的,方法都加了synchronized修饰,而StringBuilder则没有,所以StringBuilder是线程不安全的。

    关于初始化:

    两者初始化大小都一样,在构造时都是通过父类AbstractStringBuilder的构造函数初始一个长度为16的字符集数组,而后每次append时都会判断这个数组长度是否足够,否则通过

    这个算法扩增,大概是扩增至原来的1.6倍左右。

    然而delete(int start,int end)这个方法就比较有趣了,通过查看源码

    发现它是通过System.arrayopy这个方法完成的,这个方法的官方解释是:

    arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
     从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

    参数从左到右大概的意思是:第一个是要复制的数组,第二个是从要复制的数组的第几个开始,第三个是复制到哪,第四个是复制到的数组第几个开始,最后一个是复制长度

     反正我是没理解啥意思,感觉挺有趣就贴出了了。

    业精于勤 ==不想升职加薪的码农不是好码农==
  • 相关阅读:
    hdu 1163 Eddy's digital Roots (数学)
    hdu 2546 饭卡 (01背包)
    hdu 1059 Dividing(多重DP)
    晚霞
    最佳学习方法
    [备忘]求两数最大公约,最小公倍数
    不眠的夏夜
    超女唱《八荣八耻》:好完美的恶搞啊
    公司展会上的德国MM
    我玩游戏
  • 原文地址:https://www.cnblogs.com/coreyjk/p/6226718.html
Copyright © 2011-2022 走看看