一、String类概述
1、概述
java.lang.String类代表字符串。Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例。String 是引用数据类型,不是基本数据类型。
类String 中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻译为大写或小写的所有字符的字符串的副本。
2、特点【重要】
a、字符串不变:字符串的值在创建后不能被更改。【非常重要】
Demo:
String s1 = "abc";
s1 += "def";
System.out.println(s1); // s1 = "abcdef"
分析:内存中有"abc","abcdef"两个对象,s1从指向"abc",改变指向,指向了"abcdef" ,字符串本身并没有改变,而是改变了指向。
扩展:String对象怎么就不可变?
底层char[]数组有final修饰,意味着这个数组不能扩容等,来达到存更多的字符
char[]数组是私有的,程序员无法直接操作这个char[]数组,而且String没有提供这样的方法,来修改char[]数组的元素的值。
String提供的所有的方法,对字符串的修改都是给你返回一个新的字符串对象。
b、因为String对象是不可变的,可以把一些字符串存到常量池中,字符串在常量池中