一、前言
简单了解JDK常用的包和类后,开始学习String类,学习思路:
-
了解String类的概念
-
掌握String类基本的构造器
-
理解创建String对象的底层区别
-
掌握String类基本的常用方法
二、String类的概念
String类代表字符串,字符串是常量,他们的值创建之后不能更改。
java.lang.String:
public final class String implements java.io.Serializable,Comparable<String>,CharSequence{
-
final修饰符:类被final修饰符修饰,所以String类不能被继承,也代表不可变的字符序列(这点目前还不能完全理解,先将其写好);
-
Serializable接口:表示字符串是支持序列化的;(据说等到学到IO流的时候即可理解。。)
-
Comparable接口:表示String可以比较大小;
三、String类的构造方法
1.String类常用的构造方法
熟练掌握几种String类常用的构造器,剩余可看API;(先掌握一些基础常用的)
String str = "hello"; 初始化一个新创建的 String 对象"hello"; String s1 = new String(hello); new一个String对象"hello"; String s1 = new String(char[] a); new一个String对象,内容为char[] a; String s1 = new String(char[] a,int startIndex,int count); new一个String对象char[] a,从索引startIndex出开始截取,长度为count;
2.创建String对象的两种区别
理解创建String对象后一些基础的底层逻辑
-
直接赋值方式创建对象
直接赋值方式创建对象是在方法区的常量池
-
通过构造方法创建字符串对象
通过构造方法创建字符串对象是在堆内存
例:
public class TestString { public static void main(String[] args) { String str1 = "Lance"; String str2 = new String("Lance"); String str3 = str2; //引用传递,str3直接指向st2的堆内存地址 String str4 = "Lance"; System.out.println(str1==str2);//false System.out.println(str1==str3);//false System.out.println(str3==str2);//true System.out.println(str1==str4);//true } }
四、String类的常用方法
熟练掌握一些String类常用的方法,剩余可看API;
1.String的判断功能
boolean equals(Object obj): 重写的equals方法,比较字符串的内容是否相同 boolean equalsIgnoreCase(String str): 比较字符串的内容是否相同,忽略大小写 boolean startsWith(String str): 判断字符串对象是否以指定的str开头 boolean endsWith(String str): 判断字符串对象是否以指定的str结尾
2.String类的获取功能
int length(): 获取字符串的长度,其实也就是字符个数 char charAt(int index): 获取指定索引处的字符 int indexOf(String str): 获取str在字符串对象中第一次出现的索引,输入为首位s的索引值 String substring(int start): 从start开始截取字符串 String substring(int start,int end): 从start开始,到end结束截取字符串。包括start,不包括end
3.String的转换功能
char[] toCharArray(): 把字符串转换为字符数组 String toLowerCase(): 把字符串转换为小写字符串 String toUpperCase(): 把字符串转换为大写字符串(使用默认字符集进行编码) byte[] getBytes():把字符串转换为字节数组(Arrays.toString()查看)
4.其他常用方法
String trim(): 去除字符串两端空格 String[] split(String str): 按照字符串中其有的指定符号分割字符串,存于数组 String intern():将String对象放入常量池中