在java中String a="a",b="a";a==b为什么返回true?

来源:互联网 发布:矩阵除法 编辑:程序博客网 时间:2024/05/22 04:27
String a="ab";String b="ab";System.out.println(a==b);String c="a";String d=c+"b";System.out.println(a==d);

打印结果为:true

                      false

这里的“ab”是字符串直接量,在java的语法中是对象,java虚拟机为了提高内存存储效率,同样序列的字符串直接量为一个实例,所以其实引用变量a和b其实是指向同一个实例,地址也就相同。引用变量比较的是地址,所以第一个打印出来为true。

由于引用变量a和d指向的地址不同,所以比较结果为false。

原创粉丝点击