String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2);
请问 输出什么?
双等号比较的是变量中保存的内存地址结果是true 他们都指向了常量池中的内存地址
String x = new String("xyz");
String y = new String("xyz");
System.out.println(x == y);
请问输出什么?
new String 会在堆内存中新开辟一块空间,虽然这两个空间中都是存的字符串常量池中"xyz"的地址,但是这两个String对象的内存地址是不相同的,所以为false
String x = new String("hello");
String y = new String("hello");
请问一共创建了几个对象?
一共创建了3个对象,"hello"创建在字符串常量池中,
两个String对象创建在堆内存中