<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

    主站蜘蛛池模板: 免费精品视频在线| 亚洲熟妇丰满xxxxx| 国产免费久久久久久无码| 免费国产成人高清视频网站| 亚洲成AV人片在WWW| 又粗又大又猛又爽免费视频| 杨幂最新免费特级毛片| 亚洲高清免费视频| caoporn成人免费公开| 国产亚洲AV手机在线观看| 中国国产高清免费av片| 亚洲av日韩av不卡在线观看| 69免费视频大片| 亚洲中文无码永久免| 国产免费无遮挡精品视频 | 亚洲一区电影在线观看| 久久经典免费视频| 中国人免费观看高清在线观看二区 | 亚洲免费综合色在线视频| 亚洲国产视频一区| 成人黄18免费视频| 日日躁狠狠躁狠狠爱免费视频| 1000部羞羞禁止免费观看视频 | 另类小说亚洲色图| 国产a v无码专区亚洲av| 九九热久久免费视频| 亚洲av无码成人黄网站在线观看| 久久久免费精品re6| 亚洲一区二区三区久久久久| 日本特黄特色免费大片| ww在线观视频免费观看w| 精品亚洲国产成AV人片传媒| 成人a视频片在线观看免费| 四虎一区二区成人免费影院网址| 亚洲精品美女久久777777| 成人免费黄色网址| 黄页免费视频播放在线播放| 久久丫精品国产亚洲av| 日韩在线免费看网站| 麻豆精品不卡国产免费看| 亚洲欧美国产国产综合一区|