Salve a tutti, ho un problema con questo codice:
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.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(); } }
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 :/

Rispondi quotando
