1.概述
- 只要是用双引号括起来的都叫字符串
- String类的在包java.lang.String中,只要是java.lang中的包,在写程序时都不需要import进来
- 字符串的内容一旦创建,将不再改变,是一个常量
- 正是因为字符串不可改变,所以字符串是可以共享的。就像是共享单车,我们都可以享用,但每个人不能去破坏它。
- 字符串效果上相当于是char[]字符数组,但是底层原理是byte[]数组
2.String类的创建(3+1种方式)
2.1三种构造方法
public String();//创建一个空白的字符串,不含有任何内容
public String(char[] array);//根据字符串数组的内容,来创建对应的字符串
public String(byte[] array);//根据字节数组的内容,来创建对应的字符串
- 三种构造方法的代码演示:
public calss ConstructString{
public static void main(String[] args){
String str1 = new String();
System.out.println("第一个字符串:"+str1);
char [] charArray = {'A','B','C'};
String str2 = new String(charArray);
System.out.println("第二个字符串:"+str2);
byte[] byteArray = {97,98,99};
String str3 = new String(byteArray);
System.out.println("第三个字符串:"+str3);
}
}
2.2加一种直接创建
String str4 = "字符串"
不管有没有new ,只要是双引号内的,JVM都会判断是字符串
3.常量池
3.1字符串中关于比较的知识
- 在Java中,用if(String1 = String2)比较两个字符串,比较的是这两个字符串的地址是否一样,若想比较两个值是否一样,要用String的equals方法,如:
public class CompareString{
public static void main(String[] args){
String str1 ="abc";
String str2 = "abc"
String str3 = new String("abc");
String str4 = new String("abc");
System.out.println(str1 ==str3)//false
System.out.println(str1.equals(str3))//true
System.out.println(str1 ==str2)//true