Java方法参数传递方式总结

该篇文章根据知乎用户[Intopass]回答内容修改而来。
https://www.zhihu.com/question/31203609

首先结论是


八大基本数据类型按值传递。
其他对象按引用传递。
方法的传递其实就是一个变量赋值给另一个变量的过程。基本数据类型赋值传递的是值本身,其他对象赋值传递的是引用。

结果验证


首先看第一个程序(按值传递):

    int num = 100;
    public void method(int i){
        i = 0;
    }
    method(num);
    System.out.println(num);

在这里num的值没有被改变。还是原来的值。
第一个程序示意图

第二个程序(按引用传递,不改变自身):

String str = "hello";
public void mathod(String s){
    s = "world";
}
method(str);
System.out.println(str);

输出结果还是hello。
第二个程序示意图

第三个程序(按引用传递,改变自身):

StringBuffer buffer= new StringBuffer("Hello");
public void method(StringBuffer sb){
    sb.apend("World");
}
method(buffer);
System.out.println(buffer);

输出HelloWorld。
第三个程序示意图


2016年4月17日18:58:54
周日
写于宿舍

发布了36 篇原创文章 · 获赞 85 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/u012719153/article/details/48603989
今日推荐