String s1=new String("hale");
String s2=new String("hale");
if(s1==s2){
System.out.println(true);
}else{
System.out.println(false);
}
CONSOLE:
cavab FALSE olacaq.Cunki,s1 ve s2 referansinin terkibi eyni olsa bele 2 muxtelif obyektin referanslaridir.Cunki new String() hemise yeni obyekt yaradir.
if(s1.equals(s2));
olsa ,bu zaman netice TRUE olacaq.cunki bu metod yalniz terkibe baxir.
eger s1="abc";
s2="abc";
olsa, onda cavab TRUE olacaq.Cunki yeni obyekt yaradilmayacaq.
Wrapper classlarda ise ferqlidir bu beraberlik elametleri.
Integer a=new Integer(100);
Integer b=new Integer(100);
if(a==b){
System.out.println(true);
}else{
System.out.println(false);
}
}
CONSOLE:
Burada cavab yeni obyekt yarandigi ucun yene false olacaq.
Integer a=100;
Integer b=100;
if(a==b){
System.out.println(true);
}else{
System.out.println(false);
}
}
CONSOLE:
Burada yeni 1 obyekt yaranmadigi ucun netice TRUE olacaq.Ancaq 1 seyi qeyd etmeliyemki Integer ve Short
-128 ve 127 araliginda olarsa ozunu primitive tip kimi aparacaq ve netice TRUE olacaq.
Integer a=500;
Integer b=500;
if(a==b){
System.out.println(true);
}else{
System.out.println(false);
}
}
CONSOLE:
Burada netice FALSE olacaq.Cunki ,127-den yuxaridi verdiyimiz deyer.
Byte,Boolean ve Character yeni obyekt yaranmadigi teqdirde muqayise edilse (==) ozunu primitive tip kimi aparacaq ve netice TRUE olacaq.
Qeyd etmek lazimdirki diger Wrapper tiplerden ferqli olaraq Characterin yalnizca 1 constructoru ola biler.
Character c=new Character('a');
Hiç yorum yok:
Yorum Gönder