<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

    主站蜘蛛池模板: 最近中文字幕mv免费高清在线| 国产午夜亚洲精品不卡电影| 一个人免费视频在线观看www | 高清永久免费观看| 亚洲精品偷拍视频免费观看 | 久久精品国产亚洲Aⅴ蜜臀色欲| 久久久久久久久无码精品亚洲日韩| 国产精品色午夜视频免费看| 亚洲av无码一区二区三区在线播放| 青青青国产免费一夜七次郎 | 不卡一卡二卡三亚洲| 亚洲高清一区二区三区| 草久免费在线观看网站| 在线看片无码永久免费aⅴ| 亚洲熟女www一区二区三区| 国产成人精品免费视频动漫 | 丁香花免费高清视频完整版| 亚洲成综合人影院在院播放| 91香蕉在线观看免费高清| 亚洲精品免费在线观看| 女人体1963午夜免费视频| 久久久久久亚洲精品中文字幕| 手机看片国产免费永久| 亚洲精品国偷自产在线| 直接进入免费看黄的网站| 噼里啪啦电影在线观看免费高清| 亚洲高清美女一区二区三区| 亚洲精品国产免费| 亚洲av色影在线| 69影院毛片免费观看视频在线| 久久亚洲熟女cc98cm| 免费黄色福利视频| 亚洲av日韩综合一区久热| 国产国产人免费视频成69堂| 久久精品国产亚洲AV嫖农村妇女| 久久国产色AV免费观看| 亚洲а∨天堂久久精品9966 | 亚洲啪啪综合AV一区| 久久青草免费91线频观看不卡| 亚洲三级视频在线观看| 在线观看免费a∨网站|