Java char jdk_java学习系列之二---字符串(char.String.StringBuilder以及StringBuffer)
一.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)相关推荐
- Java命令学习系列(二)——Jstack
转载自 Java命令学习系列(二)--Jstack jstack是java虚拟机自带的一种堆栈跟踪工具. 功能 jstack用于生成java虚拟机当前时刻的线程快照.线程快照是当前java虚拟机内每一 ...
- Java云同桌学习系列(十五)——MySQL数据库
本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌". 每月预计保持 ...
- java云同桌学习系列(十四)——JavaScript语言
本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,可以随着我的步伐一起进步,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌& ...
- Java云同桌学习系列(十三)——前端技术之HTML与CSS
本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,可以跟随我的步伐一起学习,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌& ...
- Java云同桌学习系列(十九)——Linux系统
本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌". 每月预计保持 ...
- oracle用dual创建临时表,Oracle 学习系列之二(会话与事务级临时表和dual表 )
一. 会话临时表 --创建会话临时表 create global temporary table tmp_user_session(user_id int, user_name varchar2(20 ...
- java云同桌学习系列(七)——集合
本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌". 每月预计保持 ...
- java云同桌学习系列(十)——网络编程
本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌". 每月预计保持 ...
- 强化学习系列文章(二十三):AirSim Python API图像与图像处理
强化学习系列文章(二十三):AirSim Python API图像与图像处理 参考网址:https://microsoft.github.io/AirSim/image_apis/#segmentat ...
最新文章
- Analytic Functions 分析函数(rank over)
- [密码学基础][信息安全][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第11篇]DLP、CDH和DDH问题是什么?
- swoole开发 php爬虫,PHP使用swoole实现多线程爬虫
- 掌握ROMA Compose,报表清单不秃头
- 在Simulink中设计多工位的系列PID控制器Design Family of PID Controllers for Multiple Operating Points
- 子序列问题sequence(【CCF】NOI Online能力测试2 提高组第二题 )
- 2019年,有远见的程序员都在关注这些硬核公众号
- 普通摄像头的数据输出格式YUV与mjpeg之间联系、DCT离散余弦变换去噪跟压缩(待补充)
- Python学习笔记25:接口类、抽象类和封装
- Office Scan(OSCE)10.0客户端手动卸载
- 在ppt中怎么加入倒计时 里面怎么加入倒计时【方法】
- 计算机雕刻教学设计,综合实践《果蔬雕刻》教学设计第一课时
- 搜狗新闻语料文本分类实践
- linux pwm控制蜂鸣器 滴滴_linux pwm实现蜂鸣器
- STM32实现DAC音频播放
- 各领域公开数据集下载
- 一图看懂平凡的世界人物关系
- Python基础语法---(3)字符串的基本操作和使用
- 一文读懂上拉电阻:工作原理和阻值确定
- Python图像识别-Opencv05 色彩
热门文章
- sparkpython多线程_如何在PySpark(Spark流)中组合多个rdd?
- C++中数组、链表list、容器map/vector的区别
- socket通信相关知识
- vux安装中遇到的坑(转)
- Why is it called “armature” instead of “skeleton”? or perhaps “rig”?
- 设计模式之-单例模式
- jQuery中iframe的操作
- Activity.startManagingCursor方法
- CCF202009-4 星际旅行(100分题解链接)
- 2019ICPC亚洲区域赛日程与2019CCPC比赛日程