String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)
2015-09-06 13:30
585 查看
String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别
(String系列之1)
本章主要介绍String和CharSequence的区别,以及它们的API详细使用方法。
转载请注明出处:/content/3624887.html
更多内容请参考:
1. StringBuilder 详解 (String系列之2)
2. StringBuffer 详解 (String系列之3)
String 是java中的字符串,它继承于CharSequence。
String类所包含的API接口非常多。为了便于今后的使用,我对String的API进行了分类,并都给出的演示程序。
String 和 CharSequence 关系
String 继承于CharSequence,也就是说String也是CharSequence类型。
CharSequence是一个接口,它只包括length(), charAt(int index), subSequence(int start, int end)这几个API接口。除了String实现了CharSequence之外,StringBuffer和StringBuilder也实现了CharSequence接口。
需要说明的是,CharSequence就是字符序列,String, StringBuilder和StringBuffer本质上都是通过字符数组实现的!
StringBuilder 和 StringBuffer 的区别
StringBuilder 和 StringBuffer都是可变的字符序列。它们都继承于AbstractStringBuilder,实现了CharSequence接口。
但是,StringBuilder是非线程安全的,而StringBuffer是线程安全的。
线程安全就是在多线程环境下也不会出现数据不一致,而非线程安全就有可能出现数据不一致的情况。
线程安全由于要确保数据的一致性,所以对资源的读写进行了控制,换句话说增加了系统开销。所以在单线程环境中效率比非线程安全的效率要低些,但是如果线程间数据相关,需要保证读写顺序,用线程安全模式
它们之间的关系图如下:
![](http://images.cnitblog.com/blog/497634/201311/08083111-591e2833f8a34264b0dad417f4188e35.jpg)
更多关于“StringBuilder”的内容,请参考:/article/4708128.html
更多关于“StringBuffer”的内容,请参考 :/article/4708129.html
本章介绍StringBuilder以及它的API的详细使用方法。
转载请注明出处:/article/4708128.html
StringBuilder 是一个可变的字符序列。它继承于AbstractStringBuilder,实现了CharSequence接口。
StringBuffer 也是继承于AbstractStringBuilder的子类;但是,StringBuilder和StringBuffer不同,前者是非线程安全的,后者是线程安全的。
StringBuilder 和 CharSequence之间的关系图如下:
![](http://images.cnitblog.com/blog/497634/201311/08083210-d5754a2a4b8d4fcba9953f809cea9f6b.jpg)
StringBuffer 详解 (String系列之3)
本章介绍StringBuffer以及它的API的详细使用方法。
转载请注明出处:/article/4708129.html
StringBuffer 是一个线程安全的可变的字符序列。它继承于AbstractStringBuilder,实现了CharSequence接口。
StringBuilder 也是继承于AbstractStringBuilder的子类;但是,StringBuilder和StringBuffer不同,前者是非线程安全的,后者是线程安全的。
StringBuffer 和 CharSequence之间的关系图如下:
![](http://images.cnitblog.com/blog/497634/201311/08083300-3dec4f0222124f30a8c3e0be389447ad.jpg)
http://pastqing.github.io/blog/2014/12/10/JAVA%20String%E7%B1%BB%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90%EF%BC%88%E4%B8%80%EF%BC%89.html
(String系列之1)
本章主要介绍String和CharSequence的区别,以及它们的API详细使用方法。
转载请注明出处:/content/3624887.html
更多内容请参考:
1. StringBuilder 详解 (String系列之2)
2. StringBuffer 详解 (String系列之3)
String 简介
String 是java中的字符串,它继承于CharSequence。String类所包含的API接口非常多。为了便于今后的使用,我对String的API进行了分类,并都给出的演示程序。
String 和 CharSequence 关系
String 继承于CharSequence,也就是说String也是CharSequence类型。
CharSequence是一个接口,它只包括length(), charAt(int index), subSequence(int start, int end)这几个API接口。除了String实现了CharSequence之外,StringBuffer和StringBuilder也实现了CharSequence接口。
需要说明的是,CharSequence就是字符序列,String, StringBuilder和StringBuffer本质上都是通过字符数组实现的!
StringBuilder 和 StringBuffer 的区别
StringBuilder 和 StringBuffer都是可变的字符序列。它们都继承于AbstractStringBuilder,实现了CharSequence接口。
但是,StringBuilder是非线程安全的,而StringBuffer是线程安全的。
线程安全就是在多线程环境下也不会出现数据不一致,而非线程安全就有可能出现数据不一致的情况。
线程安全由于要确保数据的一致性,所以对资源的读写进行了控制,换句话说增加了系统开销。所以在单线程环境中效率比非线程安全的效率要低些,但是如果线程间数据相关,需要保证读写顺序,用线程安全模式
它们之间的关系图如下:
![](http://images.cnitblog.com/blog/497634/201311/08083111-591e2833f8a34264b0dad417f4188e35.jpg)
更多关于“StringBuilder”的内容,请参考:/article/4708128.html
更多关于“StringBuffer”的内容,请参考 :/article/4708129.html
本章介绍StringBuilder以及它的API的详细使用方法。
转载请注明出处:/article/4708128.html
StringBuilder 简介
StringBuilder 是一个可变的字符序列。它继承于AbstractStringBuilder,实现了CharSequence接口。StringBuffer 也是继承于AbstractStringBuilder的子类;但是,StringBuilder和StringBuffer不同,前者是非线程安全的,后者是线程安全的。
StringBuilder 和 CharSequence之间的关系图如下:
![](http://images.cnitblog.com/blog/497634/201311/08083210-d5754a2a4b8d4fcba9953f809cea9f6b.jpg)
StringBuffer 详解 (String系列之3)
本章介绍StringBuffer以及它的API的详细使用方法。
转载请注明出处:/article/4708129.html
StringBuffer 简介
StringBuffer 是一个线程安全的可变的字符序列。它继承于AbstractStringBuilder,实现了CharSequence接口。StringBuilder 也是继承于AbstractStringBuilder的子类;但是,StringBuilder和StringBuffer不同,前者是非线程安全的,后者是线程安全的。
StringBuffer 和 CharSequence之间的关系图如下:
![](http://images.cnitblog.com/blog/497634/201311/08083300-3dec4f0222124f30a8c3e0be389447ad.jpg)
Java String类源码解析(一) 转载
http://pastqing.github.io/blog/2014/12/10/JAVA%20String%E7%B1%BB%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90%EF%BC%88%E4%B8%80%EF%BC%89.html
相关文章推荐
- UI初级之常用UI控件UILabl 与 UIButton
- UI入门教程
- iOS开发:UITableView编辑——cell的删除和移动
- 聊聊并发——ConcurrentLinkedQueue的实现原理分析
- ui概述
- iOS-UILabel 自动换行
- Parameter 'uidList' not found. Available parameters are [list]
- Arduino DS18B20温度检测
- ecshop编辑器fckeditor换百度ueditor编辑器教程
- poj 2778 DNA Sequence (ac自动机+矩阵快速幂优化dp)
- String、StringBuilder
- 1099. Build A Binary Search Tree (30)
- this class is not key value coding-compliant for the key imageView的崩溃问题
- jquey.fullpage左右无缝轮播
- VBA 使用QueryTables 中文乱码的处理
- std::deque
- [性能]StringBuilder与StringBuffer的区别(转)
- UIKit;多任务
- Implement Stack using Queues 两个队列实现一个栈
- 实现当tableview当向上滚动时,头部添加的view看上去不随向上滚动的效果