JavaSE---值傳遞、引用傳遞

一、概述java

    1.1  值傳遞:傳遞的是值的拷貝;引用傳遞:傳遞的是引用的地址值;(Java中統稱爲值傳遞)spring

    1.2  java中只有   基本數據類型、String s="aa";這2種形式是值傳遞,其餘都爲引用傳遞;數組

二、案例spa

package com.exiuge.mytest;

/**
 * 值傳遞   基本數據類型
 */
public class Test {

    public static void main(String[] args){
        int i=3,j=4;
        change(i,j);
        System.out.println(i+":"+j);
    }

    public static void change(int i,int j){
        int temp=0;
        temp=i;
        i=j;
        j=temp;
        System.out.println("change:"+i+":"+j);
    }
}

執行結果:code

package com.exiuge.mytest;

import com.exiuge.mytest.springioc.User;

/**
 * 值傳遞  String s="a";
 */
public class Test {

    public static void main(String[] args){
        String s="aa";
        change(s);
        System.out.println(s);
    }

    public static void change(String s){
        s="bb";
    }
}

執行結果:blog

package com.exiuge.mytest;

/**
 * 引用傳遞  數組
 */
public class Test {
    public static void main(String[] args){
        int[] arr=new int[]{1,2,3,4,5};
        change(arr);
        System.out.println(arr[0]);

    }

    public static void change(int[] arr){
        arr[0]=12;
    }
}

執行結果:get

12io

package com.exiuge.mytest;

import com.exiuge.mytest.springioc.User;

/**
 *   引用傳遞    自定義數據類型
 */
public class Test {
    public static void main(String[] args){
        User user=new User(12,"a");
        change(user);
        System.out.println(user.getAge());
    }

    public static void change(User user){
        user.setAge(15);
    }
}

執行結果:class

15test

相關文章
相關標籤/搜索