Java值传递和引用传递

来源:互联网 发布:java接收json对象 编辑:程序博客网 时间:2024/06/05 16:52

Java中传递的方式有两种,第一种是值传递,第二种是引用传递,也叫做地址传递。

值传递

  • 指的是在方法调用时,传递的参数是按值的拷贝传递。比如Java基本数据类型都是值传递。
  • Java的基本数据类型分为:
    • 整数值型:byte,short,int,long
    • 浮点类型:float,double
    • 字符型:char
    • 布尔型:boolean
  • 值传递重要特点:传递的是值的拷贝,也就是说传递后就互不相关了。
public class Test {    private void test1(int a){        a = 5;        System.out.println("test1方法中的a="+a);    }    public static void main(String[] args) {        Test t = new Test();        int a = 3;        t.test1(a);//传递后,test1方法对变量值的改变不影响这里的a        System.out.println(”main方法中的a=”+a);    }}

引用传递

  • 指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。
  • 引用传递的重要特点:传递的是值的引用,也就是说传递前和传递后都指向同一个引用(也就是同一个内存空间)。
  • 引用数据类型主要包括:
    • 类:class
    • 接口:interface
    • 数组
 public class TempTest {     private void test1(A a){     a.age = 20;     System.out.println("test1方法中的age="+a.age);     }     public static void main(String[] args) {     TempTest t = new TempTest();         A a = new A();         a.age = 10;         t.test1(a);     System.out.println(”main方法中的age=”+a.age);     } } class A{     public int age = 0; }

输入结果为:

test1方法中的age=20;main方法中的age=20;
原创粉丝点击