傳值or傳引用?兩段代碼說明java高級for循環

String是不可變類,同樣不可變的還有BigDecimal

        List<String> sbl = new LinkedList<String>(){{
            add(new String("sdsag"));
        }};
        for(String s: sbl){
            s+="sdf";//String是不可變類,這裏s新建實例,賦值成“sdsagsdf”,s不再指向sbl中的元素。
        }
        //sbl中的值不變

        List<StringBuffer> sbl = new LinkedList<StringBuffer>(){{
            add(new StringBuffer("sdsag"));
        }};
        for(StringBuffer s: sbl){
            s.append("sdf");
        }
        //sbl中的值改變
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章