创建数组或者字符串那个变量只是一个管理者的的身份,也可以有多个管理者管理一个数组或者字符串;
例如;
int[] s=new int[5];
s[0]=5;
int[] b=s;
System.out.println(s[0]);//5
b[0]=2;
System.out.println(s[0]);//2
System.out.println(s==b);//true
比较s与b (s==b)比较的是s b是否是同一个东西,当int[] b=s;这句代码执行时,已经把这个new int[5]数组交给了 s 与 b这两个管理者,他俩管理的数组为一个,所以就是正确的;
看下面一段代买
Scanner in=new Scanner(System.in);
// String s;
// s=in.nextLine();
// System.out.println(s=="bye"); //输出false 比较的是他俩是否是同一个东西
// System.out.println(s.equals("bye"));//输出true .equals字符串中的内容 , 比较的是其内容是否相同
第一个输出为false , 比较的是他俩是否是同一个东西,两个本质区别是,第一个为有一个管理者s 管理的bye字符,第二个为不知道管理者是谁里面存的东西为bye字符。管理者都不一样,一定不会相等;
第二个就不过多解释了,比较的就是内容,不会顾及管理者是谁