String n1 = "hello";
String n2 = "hello";
System.out.println(n1 == n2);
输出结果是true,栈中有两个对象的引用,分别指向堆中的两个对象,两个对象的内存地址应该是不一样的吧,为什么打印结果是true呢!?
String n1 = "hello";
String n2 = "hello";
System.out.println(n1 == n2);
输出结果是true,栈中有两个对象的引用,分别指向堆中的两个对象,两个对象的内存地址应该是不一样的吧,为什么打印结果是true呢!?
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
n1和n2指向的是常量池的同一个对象hello

字节码指令都是使用ldc将String型常量值从常量池中推送至栈顶
