值类型和引用类型做参数时的值会不会影响实参

我们知道,一个方法是可以有形参的,也就是方法名后括号里的参数,当我们调用此方法,并向里面传入参数时,也就是实参,那这个实参会不会改变呢?

当我们传入int类型的值时,无论传入的形参是多少,他本身的实参并不会改变,八大数据类型都为值类型。

当我们传入引用类型的值时,他本身的实参会根据方法里的语句做出改变。

还有一种引用类型,他非常特殊,他就是String,String虽然是引用类型,但是他在调用方法时,确确实实的不会改变他自身的值。接下来我们用图来解释一下:

接下来我们用代码写一下:

public static void main(String[] args) {
		
	/*
	* 值类型
	*/
	int a = 10;
	System.out.println( "调用前:"+ a );
	changNum(a);
	System.out.println( "调用后:"+ a );
	/*
	 * 字符串类型
	 */
	String str = "ABCD";
	System.out.println("调用前 :" + str );
	changString(str);
	System.out.println("调用后 :" + str );
						
	/*
	 * 对象类型
	*/
		
	Student s1 = new Student();
	s1.setAge(10);
	s1.setName("张三");
	System.out.println("调用前:"+ s1);
	changStudent(s1);
	System.out.println("调用后:"+ s1);
		
}
	
	public static void changNum ( int num ) {
		num ++ ;	
	}
	public static void changString ( String str1 ) {
		str1 += "1234";
		//字符串不允许在原地址上进行修改,每次都新建地址进行操作。
	}
	public static void changStudent ( Student s ) {
		s.setAge(100);
		s.setName("李四");	
	}

执行的结果为:

调用前:10
调用后:10
调用前 :ABCD
调用后 :ABCD
调用前:Student [name=张三, age=10]
调用后:Student [name=李四, age=100]

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值