当前位置: 代码迷 >> J2SE >> String数组的迷惑,求指教
  详细解决方案

String数组的迷惑,求指教

热度:103   发布时间:2016-04-23 19:40:56.0
String数组的疑惑,求指教
import java.util.Scanner;


 class Test {

public static void main(String[] args) {
String string[]=new String[2];
String string2[]=new String[2];
Scanner imput=new Scanner(System.in);
string[0]="abc";
string[1]="abc";
string2[0]="abc";
System.out.println(string[0]==string[1]);
System.out.println(string[0]==string2[0]);
System.out.println("请输入abc");
string2[1]=imput.next();
System.out.println(string[0]==string2[1]);

}
}
跑出来前两个是true,最后一个是false,为什么前两个是true,数组不是单独开辟一块内存吗,为什么用==会显示ture

------解决思路----------------------
在编译时,三个一样的 “abc” 被优化成一个字符串,三个变量指向同一个字符串,所以 == 按地址比较的结果是 true。
运行时输入的字符串是新建的字符串,所以指向的地址不同。
  相关解决方案