package String1;
public class test2 {
/*字符串常量是一种定义的方式
*字符串需要有其他形式的构造器,比如可以通过字符的数组,字节数组,
*io刘中的数据等等。
*/
public static void main(String[] args)
{
String s = new String();
System.out.println(s);
String s1 = "";
byte[] bs = {97,98,99,100};
//通过字节数组创建字符串
String s2 = new String(bs);
System.out.println(s2);
//通过字节数组创建字符串,new String(bs,offset:1,length:2)开始位置是1,偏移量为2
String s3 = new String(bs,1,2);
System.out.println(s3);
//通过字符的数组来创建一个字符串
char[] cs = {'a','b','g','h','g'};
String s4 = new String(cs);
System.out.println(cs);
String s5 = new String(cs,2,2);
System.out.println(s5);
//如果没有在字符串的常量池中发现hello就会在堆中
//创建一个对象,同时有在字符串常量池中也创建一个对象,然后用
//堆中的对象来引用字符串常量池中对象。实则创建了2个对象。
//如果在字符串的常量池中有hello,那么就会在堆中创建一个对象,直接引用
//已经存在的字符串常量池中的那个对象
String s6 = new String("hello");
System.out.println(s6);
}
}