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

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

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

    未知數據

    從頭看Java

       ::  :: 聯系 :: 聚合  :: 管理
      28 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

     

    1. 比較運算符 “==”

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

        如果進行比較的是引用類型,則當二者都執行相同的實例時,才返回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,但由于兩個分別是不

    同的對象實例對象,在堆內存中占有不同的內存空間,所以str1 == str2返回false.當執行str3 = "123"時,系

    統會先從緩存中檢查是否有一個內容為"123"的實例存在,如果沒有則會在緩存中創建一個String對象"123",

    執行str4 = “123”時,緩存中已經有了相同內容的對象,系統則不再生成對象,直接將str4指向那個對象.所

    以str3 == str4會返回true.

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

    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
        }
     
    }

      系統會將int整數自動裝箱成Integer實例,新建實例時,系統會先創建一個長度為256的Integer數組,

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

    指向相應的實例對象,ia和ib都指向相同的Integer對象所以上面的ia == ib 返回true;而當需要創建的

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

    2. 邏輯運算符

     

     程序清單:|| 和 | 的區別

    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
            }
     
        }
     
    }

      "||" 當前面的結果為true時,不會在計算后面的結果,會直接返回true;"|"總是會計算前后兩個表達式.

    posted on 2009-01-11 23:41 wangjc 閱讀(134) 評論(0)  編輯  收藏 所屬分類: 從頭看Java
    主站蜘蛛池模板: 午夜寂寞在线一级观看免费| jjizz全部免费看片| 成人亚洲网站www在线观看| 亚洲国产日韩a在线播放| 色婷婷7777免费视频在线观看| 噜噜噜亚洲色成人网站∨| 在线观看免费黄色网址| 亚洲线精品一区二区三区影音先锋 | 亚洲精品字幕在线观看| 免费无码H肉动漫在线观看麻豆| 最新国产AV无码专区亚洲 | 久久久99精品免费观看| 亚洲αv久久久噜噜噜噜噜| 免费人成在线观看网站| 久久亚洲中文字幕精品有坂深雪| 19禁啪啪无遮挡免费网站| 亚洲不卡在线观看| 韩国免费三片在线视频| 免费人成视频在线观看免费| 中文字幕无码精品亚洲资源网| 伊人免费在线观看高清版| 亚洲国产天堂久久综合网站 | 国产精品亚洲专区一区| 亚洲高清无码专区视频| a级毛片在线免费| 亚洲毛片在线免费观看| 成人au免费视频影院| 一级毛片在线播放免费| 亚洲AV无码精品色午夜果冻不卡 | 好爽…又高潮了毛片免费看| 理论片在线观看免费| 亚洲精品无码久久千人斩| 国产免费不卡视频| 麻豆91免费视频| 亚洲av日韩av高潮潮喷无码| 免费a级毛片无码a∨蜜芽试看| 老司机午夜精品视频在线观看免费 | 久久亚洲国产精品五月天婷| 91短视频在线免费观看| 国产精品无码亚洲精品2021| 久久亚洲精品中文字幕无码|