例如:
1 String s1 = "abc";
2 String s2 = new String("abc");
第一行中创建了1个对象,第二行中创建了2个对象;
第一行中只创建了abc字符串常量对象;
第二行中创建了2个对象(不考虑字符串常量池已有abc字符串对象),先在字符串常量池中创建abc字符串对象,再在堆内存中创建new String实例开辟内存空间并将abc字符串copy一份过来存放。
例如:
1 String s1 = "abc";
2 String s2 = new String("abc");
第一行中创建了1个对象,第二行中创建了2个对象;
第一行中只创建了abc字符串常量对象;
第二行中创建了2个对象(不考虑字符串常量池已有abc字符串对象),先在字符串常量池中创建abc字符串对象,再在堆内存中创建new String实例开辟内存空间并将abc字符串copy一份过来存放。