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呢!?
8 回答6.8k 阅读
4 回答1k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
4 回答494 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答651 阅读✓ 已解决
2 回答1.2k 阅读
n1和n2指向的是常量池的同一个对象hello

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