字符串(String、StringBuffer、StringBuilder)

来源:互联网 发布:泳衣知乎 编辑:程序博客网 时间:2024/05/21 23:31


=======================先介绍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的三个原因: 

  • 提高效率
  • 简化书写
  • 提高安全性


==================================================
总结: 
字符串这部分内容很常用, 也很简单, 只需熟悉有哪些功能, 要用的时候看IDE的提醒或者查看API即可. 
不多做介绍.