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 字符串属于特殊类型.
Java值传递和引用传递
最新推荐文章于 2024-09-27 00:45:01 发布