【面试经常】new String()和直接赋值

两句 分开写

String s = new String("abc");
String s = "abc";

前者创建2个对象

后者创建1个对象

 

如果是在同一个程序,只有这两句话

String s1 = new String("abc");
String s2 = "abc";

前者创建了2个对象,后者创建了0

 

注意堆、栈、方法区、字符串常量池

 

建议看b站黑马java 12.08

 

 

如下返回的是true,因为地址值相同,都是指向在字符串常量池的"abc"

1 String s1 = "abc";
2 String s2 = "abc";
3 System.out.println(s1==s2);

 

 

str += 字符串

一旦被赋值就不能被改变:意思是 =右边的字符串常量

 

posted @ 2022-03-03 20:39  Ging2000  阅读(99)  评论(0)    收藏  举报