String类的定义方式
//方式一:直接使用双引号得到字符串对象
String name="我爱你中国";
System.out.println(name);
//方式二
//1.public String():创建一个空白字符串对象,不含有任何内容(几乎不用)
String s1=new String();
System.out.println(s1);
//2.public String (String):根据传入字符串内容,来创建字符串对象(几乎不用)
String s2=new String("我是中国人");
System.out.println(s2);
//3.public String(char[] c):根据字符数组的内容,来创建对象
char[] chars={'a','b','中','国'};
String s3=new String(chars);
System.out.println(s3);
//4.public String(byte[] b);根据字节数组的内容,来创建字符串对象
byte[] bytes={97,98,99,65,67};
String s4=new String(bytes);
System.out.println(s4);
System.out.println("——————————————————————————————");
有什么区别(面试常考)
- 以""方式给出的字符串队形,在字符串常量中存储,而且相同的内容指挥在其中存储一份
- 通过构造器new对象,每new一次都会产生一个新对象,放在对存储中
String s5="abc";
String s6="abc";
System.out.println(s5 == s6);//true
char[] chs={'a','b','c'};
String s7=new String(chs);
String s8=new String (chs);
System.out.println(s7 == s8);
字符串对象的特点有哪些
- 双引号船舰的字符串对象,在字符串常量池中存储同一个
- 通过new构造器创建的字符串对象,在堆内存中分开存储