Java值传递和引用传递

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 字符串属于特殊类型.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值