《Java编程思想》读书笔记 第十三章 字符串
《Java编程思想》读书笔记 第十三章 字符串
不可变String
String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以及包含修改后的字符串内容,而最初的String对象则丝毫未动
换句话说:任何对String的改变都会引发新的对象的生成
StringBuilder和StringBuffer
StringBuilder:线程不安全的
StringBuffer:线程安全的,要维持同步锁,因此效率低
public static void testString() {long start = System.currentTimeMillis();String str = null;for (int i = 0; i < 200000; i++)str = str + i + ",";System.out.println(System.currentTimeMillis() - start);}public static void testStringBuffer() {long start = System.currentTimeMillis();StringBuffer sbf = new StringBuffer();for (int i = 0; i < 200000; i++)sbf.append(i + ",");System.out.println(System.currentTimeMillis() - start);}public static void testStringBuilder() {long start = System.currentTimeMillis();StringBuilder sbl = new StringBuilder();for (int i = 0; i < 200000; i++)sbl.append(i + ",");System.out.println(System.currentTimeMillis() - start);}public static void main(String[] args) {testString();testStringBuffer();testStringBuilder();}
可以很明显的看出来:效率:StringBuilder > StringBuffer > String
三者使用情景:
- 如果要操作少量的数据 --> String
- 单线程中,在字符串缓冲区下操作大量数据 --> StringBuilder
- 多线程中,在字符串缓冲区下操作大量数据 --> StringBuffer
《Java编程思想》读书笔记 第十三章 字符串相关推荐
- Java编程思想读书笔记——第七章:复用类
第七章 复用类 使用类而不破坏现有程序代码,有两种达到这一目的的方法: 在新的类中产生现有类的对象,也就是说new一个对象,这种方法称为组合 按照现有类的类型来创建新类,不改变现有类的形式,在其基础上 ...
- Java编程思想读书笔记--第21章并发
1.基本的线程机制 定义任务 public class LiftOff implements Runnable{protected int countDown = 10;private static ...
- JAVA编程思想读书笔记(三)--RTTI
接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...
- Java编程思想学习笔记-第11章
<?xml version="1.0" encoding="utf-8"?> Java编程思想学习笔记-第11章 Java编程思想学习笔记-第11章 ...
- Java编程思想读书笔记(七)
点击蓝字 关注我们 今天是端午节,在这里祝大家端午节安康.过节的同时也不要忘记知识储备,今天我 为大家带来了Java编程思想第七节多形性读书笔记.请大家一起品鉴,如果发现里面有啥写的不对的地方,请大家 ...
- Java编程思想读书笔记(02)
第十三章字符串 字符串是不可变的:是final类固不能继承它:也不能通过指向它的引用来修改它的内容. StringBuilder是Java SE5引用的,在这之前用的是StringBuffer.后者是 ...
- Java编程思想读书笔记一:并发
1. Thread.yield( )方法 当调用yield()时,即在建议具有相同优先级的其他线程可以运行了,但是注意的是,仅仅是建议,没有任何机制保证你这个建议会被采纳 .一般情况下,对于任何重要的 ...
- Java编程思想读书笔记——字符串
第十三章 字符串 13.1 不可变String String对象是不可变的(不能够原地修改),具备只读特性.String类中每一个修改String值的方法,实际上是创建了一个新的String对象. 当 ...
- java编程思想读书笔记汇总
第七章:复用类(上) http://blog.csdn.net/u014115673/article/details/53350009 第七章:复用类(下)http://blog.csdn.net/u ...
最新文章
- 2014年新鲜出炉的16款免费英文字体
- 重要通知:PMCAFF播客上线了!
- python使用get和post方法_python爬虫中get和post方法介绍以及cookie作用
- sklearn常用模块
- Premiere Pro CC2017教程(二) 修改导入静态图片的时间
- 0003 无重复字符的最长子串
- MMDetection-运行时
- lr模型和dnn模型_建立ML或DNN模型的技巧
- iOS--数据存储NSUserDefaults
- 新代系统plc梯形图说明书_PLC梯形图结构和运行原理讲解,适合初学者!
- python格式输出占四列左对齐_python – 打印字符串左对齐,固定宽度和后缀
- 发现一个 WPF/E Asp.net Server Control
- url 收录工具_为什么我的网站不收录??
- 公司git服务器记录
- 在CAD中修改标注箭头端样式需要怎么操作?
- 笔记本电脑安装Linux系统
- html 悬停 div,关于html:如何在div悬停时影响其他元素
- 游戏出海正当时,突破文化壁垒或成为关键
- VS2017+Fortran2018(intel parallel studio xe 2018 update 3)集成失败【已解决】
- 1、Citrix XenDesktop 2203之AD域系统安装(一)