Java值传递和引用传递

来源:互联网 发布:c 接ctp的源码示例 编辑:程序博客网 时间:2024/05/29 11:56
package test;/** * 测试值传递,引用传递 * @author Administrator * */public class Demo {public void test(int num){num++;System.out.println(num);}public void test2(EntityDemo ed){ed.setName("scott");}public void test3(String[] str){str[0]="改变了";}public static void main(String[] args) {int num=1;String[] str={"原字符串"};Demo demo=new Demo();EntityDemo ed=new EntityDemo();ed.setAge(18);ed.setName("jrd");//===============测试==================================demo.test(num);demo.test2(ed);demo.test3(str);System.out.println(num);//输出结果为原来数字1,结果不改变System.err.println(ed.getName());//输出结果为scott,结果改变System.out.println(str[0]);//输出'改变了',结果改变}}

上面一共写了三个测试方法,

1.第一个测试的一个普通的int类型的值传递,经过输出以后发现原本的num变量并没有改变,说明在Java中值传递过后,大家各回各家,各找各妈,再无关联

2.第二个测试的是一个实体类对象,经过输出发现下面对象ed的name属性同样发生了改变,证明引用传递前后两个ed指向的同一个内存地址,对其中一个改变另一个也会改变.

3.第三个是一个数组,同第二个一样,数值同样一起发生了变化.

总结:

值传递,=号过后老死不相往来

引用传递,有福同享有难同当,要变大家一起变.

注:String 字符串属于特殊类型.

原创粉丝点击