Java参数:不管是原始类型还是引用类型,传递的都是副本
若参数类型是基本数据类型,那么传过来的就是这个参数的一个副本
package p1;
public class E {
public static void main(String[] args) {
int value = 10;
test1(value);
System.out.println(value);
}
static void test1(int value) {
value = 20;
}
}
10
若参数类型是对象类型,那么传过来的是这个对象的副本,二者指向同一个对象,因此可以改参数可以改变所指对象的属性
package p1;
public class E {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Java");
test(sb);
System.out.println(sb.toString());
}
static void test(StringBuilder sb) {
sb.append("编程思想");
}
}
Java编程思想
若参数类型是对象类型,那么传过来的是这个对象的副本,二者指向同一个对象,因此改变参数所指的对象,并不能改变原变量所指的对象
package p1;
public class E {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Java");
test(sb);
System.out.println(sb.toString());
}
static void test(StringBuilder sb) {
sb = new StringBuilder("C++ Primer");
}
}
Java