Salve a tutti, ho un problema con questo codice:
codice:
private String s1 = "";private String s2;
private float [] a3 = new float [8];
private float [] a4;
void p() {
String s4 = s1.concat("abcd");
String s6;
String s8 = "";
s2 = s1.concat("abcd");
s6 = "";
a4 = a3;
q(s4, s6, s8, a4, a3);
}


void q(String s3, String s5, String s7,
float[] a1, Object a2){
if(s3 == s2) {
System.out.print(1);
} else {
System.out.print(0);
}
if(s5 == s7) {
System.out.print(1);
} else {
System.out.print(0);
}
if(a2 == a1) {
System.out.print(1);
} else {
System.out.print(0);
}
}
public static void main(String argvs[])
{
Building x = new Building();
x.p();
}
}
perchè quando confronta s5 ed s7 l'if restituisce true? due String essendo di tipo reference, quando confrontate, il confronto si applica sugli indirizzi e non sul valore effettivo, quindi s5 == s7 dovrebbe restituire false.
Qualcuno mi spiega dove sto sbagliando? ho rivisto il codice più volte e non mi pare che in qualche punto, l'inidirizzo di s6 vada a corrispondere con quello di s8 :/