很久没发帖了 分儿闲着也是闲着 就来发个帖
都知道 java里面是有字符串缓存的 那么如果有这样一个实例
public class test3 {
public static void main(String[] args) {
String b=new String("hello"); //1
//String b="hello";
String a="hello"; //2
System.out.println(a==b);
}
}
现在 我在1处定义一个字符串 那么系统在堆中会给我创建两个对象 一个是new 出来的 一个是字符串常量"hello"
而我现在在2处在定义一个变量a 那么系统就会去找堆中有没有这个字符串"hello"的缓存对象
如果没有的话那么就会创建一个 如果有的话就指向那里 但是现在的情况堆中应该是有啊 为什么也输出false呢?
a和b所引用的对象难道不一样吗?
我只是有些疑问希望得到一个合理的解释
如果大家也有类似的关于java的疑点 可以贴上来大家一起讨论
本帖100分 有更好的疑点的我可以再加分.