Java 值传递
Posted 走路带_风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 值传递相关的知识,希望对你有一定的参考价值。
public class Main
public static void main(String[] args)
String name = "muhuo";
int age = 26;
setName(name);
setAge(age);
System.out.println(name + " " + age);
private static void setName(String name)
name = "other name";
private static void setAge(int age)
age = 18;
输出为:muhuo 26
以上证实基本无论是基本数据类型或者引用数据类型都是值传递,调用setName、setAge的参数都是参数的拷贝不影响其原始值
public class Main
private String name;
private int age;
public static void main(String[] args)
Main main = new Main("muhuo", 20);
System.out.println(main);
private static void mod(Main main)
main.name = "other name";
main.age = 18;
public Main(String name, int age)
this.name = name;
this.age = age;
@Override
public String toString()
final StringBuffer sb = new StringBuffer("Main");
sb.append("name='").append(name).append('\\'');
sb.append(", age=").append(age);
sb.append('');
return sb.toString();
输出为:Mainname='muhuo', age=20
所以对于对象来说,这里调用mod方法的参数是拷贝了mian对象的引用,但是这里引用所指向的真实地址是没变的,所以mod方法内部确实对原始对象中的值进行了改变。
以上是关于Java 值传递的主要内容,如果未能解决你的问题,请参考以下文章