Java方法参数传递方式总结

来源:互联网 发布:java连接url账号密码 编辑:程序博客网 时间:2024/04/30 12:36

该篇文章根据知乎用户[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
周日
写于宿舍

0 0
原创粉丝点击