• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
学 习 点 滴
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理

随笔分类 -  编程

学习编程过程中的一些记录。
 
关于Java中StringBuffer的capacity问题
摘要:从API查到capacity的作用是查看StringBuffer的容器容量是多少,刚开始纳闷这个跟length的区别在哪?试验了几次感觉有点不解。所以直接跟进源码分析。直接通过new StringBuffer(String str);时,capacity是str.length+16,从源码可知:如果直接是new StringBuffer(),则capacity为16,见下图:如果小于16则默认容器的大小为16。如果大于16则会调用expandCapacity 函数进行容量的扩展。由源码可以看到扩展的规则是把旧的容量(value的长度)*2+2,然后与现有的比较,如果小于则把现有的容量当做新的, 阅读全文
posted @ 2013-07-20 14:57 蔡小鸿 阅读(7789) 评论(1) 推荐(2)
 

公告


博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3