Tenho uma dúvida com relação a saída deste programa:
package certificacao;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
public class TesteArrays{
public static void main(String... args){
ArrayList<String> at = new ArrayList<String>();
at.add("Coca");
at.add("pepsi");
at.add("sukita");
System.out.println("Total do Arrau at::"+at);
String[] ats1 = new String[at.size()];
String[] ats2 = at.toArray(ats1);
System.out.println("ats1 == ats2:"+(ats1==ats2));
System.out.println("ats1:"+Arrays.toString(ats1));
System.out.println("ats2:"+Arrays.toString(ats2));
ats1 = new String[1];
ats1[0]="Teste Data";
ats2 = at.toArray(ats1);
System.out.println("ats1 == ats2:"+(ats1==ats2));
System.out.println("ats1:"+Arrays.toString(ats1));
System.out.println("ats2:"+Arrays.toString(ats2));
}
}
Saída:
Total do Arrau at::[Coca, pepsi, sukita]
ats1 == ats2:true
ats1:[Coca, pepsi, sukita]
ats2:[Coca, pepsi, sukita]
ats1 == ats2:false
ats1:[Teste Data]
ats2:[Coca, pepsi, sukita]
Gostaria de saber por que na primeira comparação do Array de String ats1 e ats2 eu obtenho TRUE e na segunda compração eu obtenho FALSE ?