2 Mart 2012 Cuma

== VE EQUALS() METODUNUN MUQAYISESI

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