=======================先介绍String类=========================
0. 字符串是一个特殊的对象, 一旦初始化就不能被改变.
1. String s1 = "abc"; 与String s2 = new String("abc");的区别.
答: s1代表一个对象, s2有两个(最多有两个).
2.* 常量池: 如果之前使用到了字符"abc"和"def", (因为字符串不能被改变)那么这两个字符串都会作为字符串常量被存入常量池中, 再次使用的时候, 直接使用引用指向常量池中的字符串常量.
3. String类复写了Object类中的equals方法, 用于判断字符串是否相同.
4. String为操作字符串提供了很多类, 很简单, 需要时查看API文档即可.
=================下面开始StringBuffer类===================
5. StringBuffer是一个容器, 可以对字符串内容进行增删. 长度可变.
6. StringBuffer特有方法:
- 存储
- StringBuffer append(int x): 将指定数据作为参数, 添加到已有数据的结尾处.
- StringBuffer insert(int index, String str):可以将数据插入到指定位置.
- 删除
- StringBuffer delete(int start, int end): 删除缓冲区中的数据, 包含start, 不包含end.
- StringBuffer deleteCharAt(int index): 删除指定位置的字符.
- 获取
- char charAt(int index)
- int indexOf(String str)
- int lastIndexOf(String str)
- int length()
- String substring(int start, int end)
- 修改
- StringBuffer replace(start,end,string)
- void setCharAt(int index, char ch)
- 反转
- StringBuffer reverse()
- 将缓冲区中指定数据存储到指定字符数组中
- void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
================下面开始StringBuffer类====================
7. StringBuilder与StringBuilder类似: StringBuffer是线程同步的, StringBuilder是线程不同步的. 建议使用StringBuilder, 因为是后出的.
8. 出现StringBuilder的三个原因:
- 提高效率
- 简化书写
- 提高安全性