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";

posted @ 2020-11-23 20:03  北辰hpy  阅读(507)  评论(0)    收藏  举报