一.String

1.String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的.String类是被final修饰

2.String str="hello world"和String str=new String("hello world")的区别

public class Main {

二.StringBuffer(JDK1.0)

StringBuffer:字符串变量(Synchronized,即线程安全)。如果要频繁对字符串内容进行修改,出于效率考虑最好使用StringBuffer,如果想转成String类型,可以调用StringBuffer的toString()方法。

Java.lang.StringBuffer线程安全的可变字符序列。在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。可将字符串缓冲区安全地用于多个线程。

StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。例如,如果 z 引用一个当前内容是“start”的字符串缓冲区对象,则此方法调用 z.append("le") 会使字符串缓冲区包含“startle”,而 z.insert(4, "le") 将更改字符串缓冲区,使之包含“starlet”。

3 StringBuilder(JDK5.0)

StringBuilder:字符串变量(非线程安全)。在内部,StringBuilder对象被当作是一个包含字符序列的变长数组。

java.lang.StringBuilder是一个可变的字符序列,是JDK5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)

5 使用策略

(1)基本原则:如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。

(2)不要使用String类的"+"来进行频繁的拼接,因为那样的性能极差的,应该使用StringBuffer或StringBuilder类,这在Java的优化上是一条比较重要的原则。

http://www.cnblogs.com/dolphin0520/p/3778589.html

Java char jdk_java学习系列之二---字符串(char.String.StringBuilder以及StringBuffer)相关推荐

  1. Java命令学习系列(二)——Jstack

    转载自 Java命令学习系列(二)--Jstack jstack是java虚拟机自带的一种堆栈跟踪工具. 功能 jstack用于生成java虚拟机当前时刻的线程快照.线程快照是当前java虚拟机内每一 ...

  2. Java云同桌学习系列(十五)——MySQL数据库

    本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌". 每月预计保持 ...

  3. java云同桌学习系列(十四)——JavaScript语言

    本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,可以随着我的步伐一起进步,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌& ...

  4. Java云同桌学习系列(十三)——前端技术之HTML与CSS

    本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,可以跟随我的步伐一起学习,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌& ...

  5. Java云同桌学习系列(十九)——Linux系统

    本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌". 每月预计保持 ...

  6. oracle用dual创建临时表,Oracle 学习系列之二(会话与事务级临时表和dual表 )

    一. 会话临时表 --创建会话临时表 create global temporary table tmp_user_session(user_id int, user_name varchar2(20 ...

  7. java云同桌学习系列(七)——集合

    本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌". 每月预计保持 ...

  8. java云同桌学习系列(十)——网络编程

    本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌". 每月预计保持 ...

  9. 强化学习系列文章(二十三):AirSim Python API图像与图像处理

    强化学习系列文章(二十三):AirSim Python API图像与图像处理 参考网址:https://microsoft.github.io/AirSim/image_apis/#segmentat ...

最新文章

  1. Analytic Functions 分析函数(rank over)
  2. [密码学基础][信息安全][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第11篇]DLP、CDH和DDH问题是什么?
  3. swoole开发 php爬虫,PHP使用swoole实现多线程爬虫
  4. 掌握ROMA Compose,报表清单不秃头
  5. 在Simulink中设计多工位的系列PID控制器Design Family of PID Controllers for Multiple Operating Points
  6. 子序列问题sequence(【CCF】NOI Online能力测试2 提高组第二题 )
  7. 2019年,有远见的程序员都在关注这些硬核公众号
  8. 普通摄像头的数据输出格式YUV与mjpeg之间联系、DCT离散余弦变换去噪跟压缩(待补充)
  9. Python学习笔记25:接口类、抽象类和封装
  10. Office Scan(OSCE)10.0客户端手动卸载
  11. 在ppt中怎么加入倒计时 里面怎么加入倒计时【方法】
  12. 计算机雕刻教学设计,综合实践《果蔬雕刻》教学设计第一课时
  13. 搜狗新闻语料文本分类实践
  14. linux pwm控制蜂鸣器 滴滴_linux pwm实现蜂鸣器
  15. STM32实现DAC音频播放
  16. 各领域公开数据集下载
  17. 一图看懂平凡的世界人物关系
  18. Python基础语法---(3)字符串的基本操作和使用
  19. 一文读懂上拉电阻:工作原理和阻值确定
  20. Python图像识别-Opencv05 色彩

热门文章

  1. sparkpython多线程_如何在PySpark(Spark流)中组合多个rdd?
  2. C++中数组、链表list、容器map/vector的区别
  3. socket通信相关知识
  4. vux安装中遇到的坑(转)
  5. Why is it called “armature” instead of “skeleton”? or perhaps “rig”?
  6. 设计模式之-单例模式
  7. jQuery中iframe的操作
  8. Activity.startManagingCursor方法
  9. CCF202009-4 星际旅行(100分题解链接)
  10. 2019ICPC亚洲区域赛日程与2019CCPC比赛日程