爲什麼說java的引用傳遞也值傳遞

       爲什麼說java只有值傳遞呢。 從傳遞方式上來說,值傳遞是對值copy,傳遞後就互不相關了;而java的引用傳遞是對象引用的copy,傳遞後引用值是否改變也互不相關了

基礎數據類型(4類8種):

  •     整型:byte,short,int,long
  •     浮點型:float,double
  •     字符型:char
  •     布爾型:boolean

引用類型:   數組,類,  接口。

看個例子:

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("java");
        test1(sb);
        System.out.println(sb.toString()); // 結果: avaj
        test2(sb);
        System.out.println(sb.toString()); // 結果: avaj
    }
    public static void test1(StringBuilder sb){
        // 不改變引用值,操作對象內容,方法外的對象也被影響到。
        sb.reverse();
    }
    public static void test2(StringBuilder sb){
        // 直接改變引用值,方法外的對象無影響, 所以說java的引用傳遞本質也值傳遞。
        sb = new StringBuilder("php");
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章