在实际的开发之中没有一个项目不去使用String类,也就是说String是整个系统开发之中一个至关重要的组成类,在java程序里面所有的字符串都要求使用“ " ”号进行定义,同是也可以利用“+”实现字符串的连接处理,但是对于String类实际上还有其自身的特点,本次来进行String类的特点分析。
String类简介
字符串严格意义上来讲并不能算是一个基本数据类型,也就是说没有任何一门语言会提供有字符串这种数据类型的,而java里面为了方便开发者进行项目的编写,所以利用其JVM的支持制作了一种可以简单使用的String类,并且可以像基本数据类型那样进行直接的赋值处理。
范例:String类对象实例化
public class StringDemo {
public static void main(String[] args) {
String str = "www.mldn.cn" ; // 直接赋值
System.out.println(str);
}
}
但是需要注意的是,String这个类里面之所以可以保存字符串主要的原因是其中定义了一个数组,也就是说在String里面所有的字符串中的每一个字符的数据都是保存在了数组之中。
提示:观察String类的源代码实现
源代码目录:…\Java\jdk-14\lib\src.zip
JDK1.9之后实际上针对于字符串的定义形式是增多了,要比JDK1.8多,类的数量对比如下:
从JDK1.9开始String类之中的数组类型采用了byte类型,而JDK1.9之后使用的是字符数组。
JDK1.8以前String保存的是字符数组: | JDK1.9 以后String保存的是字节数组: |
---|---|
private final char value[]; | private final byte[] value; |
原来所谓的字符串就是对数组的一种特殊包装应用,但是同时也应该清楚一点,既然包装的是数组,所以字符串里面的内容肯定是无法改变的,这一点随后的部分会进行解释。
另外需要注意的是,在String类里面除了可以使用直接赋值的形式为对象进行实例化之外也可以按照传统的方式利用构造方法进行对象的实例化处理:public String(String str);
范例:利用构造方法进行实例化
public class StringDemo {
public static void main(String[] args) {
String str = new String("www.mldn.cn") ; // 直接赋值
System.out.println(str);
}
}
String本身包装的是一个数组,并且其有两种对象的实例化形式:直接赋值、构造方法实例化。