A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© fashionkillyou 中级黑马   /  2017-9-26 11:58  /  1245 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖子需要验证码才可查看,请输入验证码:heima 即可正常访问  

3 个回复

正序浏览
回复 使用道具 举报
321哈哈哈 发表于 2017-9-26 21:04
基本原则:如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据 ...

感谢勇哥分享,以后多多指教
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
基本原则:如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。

StringBuilder一般使用在方法内部(局部变量)来完成类似"+"功能,因为是线程不安全的,所以用完以后可以丢弃。StringBuffer主要用在成员变量中。

相同情况下使用 StringBuilder 相比使用 StringBuffer 仅能获得 10%~15% 左右的性能提升,但却要冒多线程不安全的风险。而在现实的模块化编程中,负责某一模块的程序员不一定能清晰地判断该模块是否会放入多线程的环境中运行,因此:除非确定系统的瓶颈是在 StringBuffer 上,并且确定你的模块不会运行在多线程模式下,才可以采用StringBuilder;否则还是用StringBuffer
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马