1,字符串概念
- 字符串是由多个字符组成的一串数据
- 字符串可以看成是字符数组.
2,常见构造方法
构造方法名称 描述
public String(String original) 把字符串数据封装成字符串对象
public String(char[] value) 把字符数组的数据封装成字符串对象
public String(char[] value,int offset,int count) 把字符数组中的一部分数据封装成字符串对象
publicclass Demo01String {
publicstaticvoid main(String[] args) {
//方式1:String(String original):把字符串数据封装成字符串对象
Strings1 = new String("hello");
System.out.println("s1:"+s1);
System.out.println("---------");
//方式2:String(char[] value):把字符数组的数据封装成字符串对象
char[] chs = {'h','e','l','l','o'};
String s2 = new String(chs);
System.out.println("s2:"+s2);
System.out.println("---------");
//方式3
//String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象
//String s3 = new String(chs,0,chs.length);
String s3 = new String(chs,1,3);
System.out.println("s3:"+s3);
System.out.println("---------");
}
}
3,字符串的特殊性
字符串是特殊的引用类型,字符串是常量,也就是说值在创建之后不能更改。而常量在内存中存储在一个特殊区域——常量池。需要注意的是,字符串本身不能改变,但变量中记录的地址值可以改变。
如果使用new关键字创建对象,而不是使用字面值常量,那么String与其他引用类型没有区别,都在堆内存开发开辟空间。例如:
public class Demo02String {
public static void main(String[] args) {
String s1 = new String("hello");
String s2 = "hello";
System.out.println("s1:"+s1);
System.out.println("s2:"+s2);
System.out.println("s1==s2:"+(s1==s2));
String s3 = "hello";
System.out.println("s1==s3:"+(s1==s3));
System.out.println("s2==s3:"+(s2==s3));
}
}