Java是通过值传递的,也就是说通过拷贝传递
int x = 7;
1.声明一个int类型的变量并赋值为7。代表7的字节组合会放进称为x的变量中。
void go (int z) {}
2.声明一个有int参数的方法,参数名称为z。
void go (int z) {}
foo.go(x);
3.以x为参数传入go()这个方法中。x的字节组合会被拷贝并装进z中。
void go (int z) {
z = 0;
}
4.在方法中改变z的值。此时x的值不会改变!传给z的只是个拷贝。方法无法改变调用方法所传入的参数。
在Java中所传递的所有东西都是值,但此值是变量所携带的值。引用对象的变量所携带的是远程控制而不是对象本身。若对方法传入参数,实际上传入的是远程控制的拷贝。
方法可以返回会被隐含转换成声明类型的其他类型值。例如,用byte当作int类型的返回。但若声明的类型容器小于想要返回的类型时,必须作明确的转换。