java工作中遇到的问题
java基础问题
今天在工作中遇到个了个想不通的问题,结果是自己基础不扎实,特此在这里记录一下
java中的传值问题:结论是java中只有值传递,每次传递都相当于是复制了一份,针对于基本类型,修改了传递的值则不会修改原值,而对于除了String以外的引用类型来说,就会修改原值,如对象。
对于String类型来说:开始赋值的时候是这样子的
//这里相当于一个方法的传值过程
String A = "a";
String B = A;
/**
public void foo(String B){
//xxx省略
}
public void test(){
String A = "a";
foo(A)
}
*/
但是一旦修改后,由于String由final修饰,所以将会在堆区开辟一个新的空间:
B = "acv";

浙公网安备 33010602011771号