在实际的开发之中没有一个项目不去使用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类的源代码实现
源代码目录:
D:\java\JDK\lib\src.zip
JDK1.9之后实际上针对字符串的定义形式是增多了,要比JDK1.8多,类的对比数量如下
JDK1.8以前的String支持类: | JDK1.9及以后的String支持类: |
---|---|
从JDK1.9开始String类之中的数组类型采用了byte类型
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本身包装是一个数组,并且其有两种对象的实例化形式:直接赋值、构造方法实例化。
字符串比较
下面首先回顾一下,如果说现在要想判断两个int型变量是否相等,那么肯定使用“”,这个是由程序直接提供的相等的运算符。
范例:进行“”比较
public class StringDemo {
public static void main(String args[]){
int x = 10 ;
int y = 10 ;
System.out.println(x==y) ;
}
}
但是String类实际上也牵扯到一个相等的判断问题,但是对于String类相等的判断也可以使用“==”,只不过判断的不准确而已。下面通过一个代码来观察:
范例&#