<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    未知數(shù)據(jù)

    從頭看Java

       ::  :: 聯(lián)系 :: 聚合  :: 管理
      28 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

     

    1. 比較運算符 “==”

        如果進(jìn)行比較的兩個操作數(shù)是數(shù)值型的,則是比較兩個操作數(shù)的值,只有二者的值相等,就返回true.

        如果進(jìn)行比較的是引用類型,則當(dāng)二者都執(zhí)行相同的實例時,才返回true.

        程序清單:String類型的比較

    public class StringTest {
     
        public static void main(String[] args) {
            
            String str1 = new String("123");
            String str2 = new String("123");
            
            System.out.println(str1 == str2);//這里返回false
            System.out.println(str1.equals(str2));//true
            
            String str3 = "123";
            String str4 = "123";
            System.out.println(str3 == str4);//這里返回true
            System.out.println(str3.equals(str4));//true
            
            
        }
    }

      如代碼所示,兩個new得到的String對象雖然值相等,str1.equals(str2)返回true,但由于兩個分別是不

    同的對象實例對象,在堆內(nèi)存中占有不同的內(nèi)存空間,所以str1 == str2返回false.當(dāng)執(zhí)行str3 = "123"時,系

    統(tǒng)會先從緩存中檢查是否有一個內(nèi)容為"123"的實例存在,如果沒有則會在緩存中創(chuàng)建一個String對象"123",

    執(zhí)行str4 = “123”時,緩存中已經(jīng)有了相同內(nèi)容的對象,系統(tǒng)則不再生成對象,直接將str4指向那個對象.所

    以str3 == str4會返回true.

         同樣的系統(tǒng)會把一些創(chuàng)建成本大,需要頻繁使用的對象進(jìn)行緩存,從而提高程序的運行性能.再比如

    Integer類.

         程序清單,Integer的比較

    public class IntegerTest {
     
        public static void main(String[] args) {
            
            Integer ia = 1;
            Integer ib = 1;
            
            System.out.println(ia == ib); //true
            
            Integer ic = 128;
            Integer id = 128;
            
            System.out.println(ic == id); //false
        }
     
    }

      系統(tǒng)會將int整數(shù)自動裝箱成Integer實例,新建實例時,系統(tǒng)會先創(chuàng)建一個長度為256的Integer數(shù)組,

    其中存放-128到127的Integer實例,當(dāng)再需要一個在這個范圍中的Integer對象時,系統(tǒng)會直接將引用變量

    指向相應(yīng)的實例對象,ia和ib都指向相同的Integer對象所以上面的ia == ib 返回true;而當(dāng)需要創(chuàng)建的

    Integer對象不在這個范圍中時,系統(tǒng)則會新創(chuàng)建對象,實際上ic和id是兩個不同的對象,則ic == id 返回false.

    2. 邏輯運算符

     

     程序清單:|| 和 | 的區(qū)別

    public class LogicTest {
     
        public static void main(String[] args) {
            
            int a = 1;
            int b = 2;
            
            if (a == 1 || b++ == 3) {
                System.out.println("a="+a+",b="+b);//a=1,b=2
            }
            
            if (a == 1 | b++ ==3) {
                System.out.println("a="+a+",b="+b);//a=1,b=3
            }
     
        }
     
    }

      "||" 當(dāng)前面的結(jié)果為true時,不會在計算后面的結(jié)果,會直接返回true;"|"總是會計算前后兩個表達(dá)式.

    posted on 2009-01-11 23:41 wangjc 閱讀(134) 評論(0)  編輯  收藏 所屬分類: 從頭看Java
    主站蜘蛛池模板: 日韩成人免费aa在线看| 免费看成人AA片无码视频吃奶| 亚洲国产精品免费在线观看| 国产亚洲大尺度无码无码专线 | 国产va在线观看免费| 国产亚洲视频在线播放| WWW免费视频在线观看播放| 亚洲一区二区女搞男| 国产成人精品无码免费看 | 亚洲免费中文字幕| 成年女人毛片免费播放人| 亚洲精品无码专区| 免费一级毛片在播放视频| 视频免费1区二区三区| 亚洲精品美女久久777777| 国产白丝无码免费视频| youjizz亚洲| 国产午夜免费福利红片| 国产精品hd免费观看| 久久亚洲AV午夜福利精品一区| 99re免费在线视频| 亚洲夂夂婷婷色拍WW47| 免费一级毛片在级播放| 久久免费国产视频| 亚洲国产系列一区二区三区| 亚洲XX00视频| 99久久免费精品视频| 亚洲国产综合AV在线观看| 亚洲视频在线免费| 91大神免费观看| 亚洲av成人无码网站…| 久久精品国产亚洲麻豆| 毛片视频免费观看| 中文字幕无码免费久久9一区9 | 亚洲欧美国产欧美色欲| 国产亚洲精品成人AA片新蒲金 | 亚洲国产成人a精品不卡在线| 免费国产叼嘿视频大全网站| 亚洲一区二区三区写真| 亚洲精品国产品国语在线| 处破痛哭A√18成年片免费|