http://www.iteye.com/topic/4189
代码1:
import java.awt.Point;
public final class ParameterPassingTest {
// 为基本类型参数重新赋值
public static void change(int i) {
i = 5;
}
// 为引用型参数重新赋值
// t指向新值,旧值没有任何变化。
public static void change(Point t) {
t = new Point(9, 0);
}
// 改变引用类型参数所指向对象的属性值
// 改变了传过来的值的值。
public static void addX(Point pt) {
pt.x += 20;
}
public static void main(String[] args) {
Point t = new Point();
// 为基本类型参数重新赋值
change(t.x);
System.out.println("change(t.x):" + t.x);
// 为引用型参数重新赋值
change(t);
System.out.println("change(t):" + t.x);
// 改变引用类型参数所指向对象的属性值
addX(t);
System.out.println("addX(t):" + t.x);
}
}
结果:
change(t.x):0
change(t):0
add(t):20
代码2:
public class PassByValue2 {
public static void main(String[] args); {
String b = "hi";
String a = "hello";
a = b;
b = "love";
System.out.println("a: " + a);;
}
}
结果:
a=hi
代码3:
int a,b;
a = b;
eclipse报错:The local variable b may not have been initialized