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

相关文章
相关标签/搜索