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

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

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

    Java中一個關于String對象的小筆記

    Posted on 2011-07-21 10:24 ChunPIG 閱讀(188) 評論(0)  編輯  收藏
        今天在iteye看到一個關于常量池與new 對象的問題。于是便有了這篇小筆記。
        請看代碼:
       
    public class StrTest {
        public static void main(String[] args) {
            String str1 = new String("test");
            String str2 = "test";
            String str3 = "test";
            
            System.out.println("str1 == str2 : " + (str1 == str2));
            System.out.println("str1.equals(str2):" + str1.equals(str2));
            System.out.println("str2== str3 : " + (str2 == st3));
        }
    }
    輸出結果如下:
    str == str1 : false
    str.equals(str1):true
    str1 == str2 : true
    起初,咋一看覺得很詫異。后來多看了一眼便明白了。這起始是涉及到New關鍵與”=“賦值的區別,以及equals關鍵與比較符=的區別。
    首先,就new與=,談點個人的認識。通過new出來的對象,通常是存在堆里面。而通過=賦值的對象通常存在常量池中。
        由此可以證明:上面代碼str1==str2的結果為false,而str2==str3結果是true。
        str1與str2的值雖然一樣,但是存放在位置不一樣,所以對象所指的地址也就不一樣。
    然后=在比較的時候,一般情況下都是比較地址。
    從而也就引出了下一個問題:
    比較符==與equals的區別。
    ==對于兩個變量則是比較值,對于引用類型變量則是兩個變量在堆中存儲的地址是否相同。
    而equals則是對兩個變量是否是對同一個對象的引用,也就是在堆中的內容是否相同。
        由此也可證明:str1.equals(str2)的結果是true。

    這是本人作為Java菜鳥的一點點看法。歡迎各位老鳥拍磚。

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    posts - 1, comments - 0, trackbacks - 0, articles - 0

    Copyright © ChunPIG

    主站蜘蛛池模板: 无码国产精品一区二区免费3p| 国产精品无码免费专区午夜| 国产成人精品免费视频大全麻豆 | 大学生一级特黄的免费大片视频| 亚洲自偷精品视频自拍| 免费一级毛片无毒不卡| 亚洲午夜未满十八勿入| 麻豆国产精品免费视频| 亚洲一区欧洲一区| 国产又黄又爽又刺激的免费网址 | a级毛片在线免费看| 亚洲成在人线av| 成人免费激情视频| 中文字幕在线日亚洲9| 国产一级一片免费播放| 一区二区三区免费在线观看| 亚洲午夜久久久久久久久久| 免费无码又爽又刺激高潮视频 | 亚洲日韩精品无码一区二区三区| 久久免费福利视频| 亚洲人成片在线观看| 国产区卡一卡二卡三乱码免费| 一级免费黄色大片| 久久久亚洲裙底偷窥综合| 成人性生交视频免费观看| 成在线人直播免费视频| 久久精品亚洲精品国产色婷 | 91人成网站色www免费下载| 亚洲三级在线观看| 国产亚洲精品国看不卡| 在线看无码的免费网站| 亚洲AV日韩AV一区二区三曲| 久久久青草青青国产亚洲免观 | 一级做受视频免费是看美女| 久久久久亚洲av无码专区| 免费看大美女大黄大色| 国产高清不卡免费视频| 亚洲av永久无码精品秋霞电影秋| 狠狠色伊人亚洲综合成人| 好吊妞788免费视频播放 | 精品久久久久国产免费|