字符串
String/StringBuffer/StringBuilder
1.对象的构造与初始化
2.设计特点与使用场景
3.常用方法及源码学习
String、StringBuffer、StringBuilder 比较
String、StringBuffer、StringBuilder 相同点:
①内部实现基于字符数组,封装了对字符串处理的各种操作
②可自动检测数组越界等运行时异常
String、StringBuffer、StringBuilder 不同点:
①String内部实现基于常量字符数组,内容不可变;StringBuffer、StringBuilder基于普通字符数组,数组大小可根据字符串的实际长度自动扩容,内容可变
②性能方面,对于字符串的处理,相对来说StringBuilder > StringBuffer > String
③StringBuffer线程安全;StringBuilder非线程安全
补充:
1.借助JDK文档, 选取String与StringBuffer、StringBuilder的常用API,并编写实例测试API的功能。
API——Application Programming Interface:应用程序编程接口
Java中的API:就是JDK中提供的各种功能的Java类,这些类将底层的实现封装起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可
String常用的API
①boolean isEmpty( ):判断是否是空字符串
public static void main(String[] args) {
String s="abc.123";
System.out.println(s.isEmpty());//false
}
②int length( ):返回字符串的长度
public static void main(String[] args) {
String s="abc.123";
System.out.println(s.length());//7
}
③String concat(String str):将字符串str连接到此字符串的结尾(等价于用“+”)
public static void main(String[] args) {
String s="abc.123";
System.out.println(s.concat(".www.com"));//abc.123.www.com
}
④
boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
boolean equalsIgnoreCase(Object obj):比较字符串的内容是否相同,不区分大小写
int compareTo(String other):比较字符串大小,区分大小写,从第一位开始比较,如果遇到不同字符,则返回这两个字符ASCII码值的差值,返回值是int类型,如果相等返回0
int compareToIgnoreCase(String other):比较字符串大小,不区分大小写,从第一位开始比较,如果遇到不同字符,则返回这两个字符ASCII码值的差值,返回值是int类型,如果相等返回0
2.请简述String,StringBuffer,StringBuilder三者之间的共同点与区别,应该分别在何种场景下使用?
3.为什么不建议在for循环中使用“+”进行字符串拼接?