- 对于基本变量,变量是在线程栈上开辟的空间,空间内存储的是变量的数值,当作为参数调用方法时,自然而然是把空间内的数值传递过去了,而当方法调用完成后,方法的栈空间释放,主程序的栈中,当初作为变量的参数是没有发生变化的;
- 对于string类型,由于String是final类型,相当于是C语言中指向常量的指针,当作为参数调用方法时,把存储的堆(或方法区)地址传递给方法,二这个地址的内容是不能变的,后期的复制,相当于改变了地址的值而不是改变地址中的内容,所以栈空间释放后变量没变;
- 要想将变量作为传输接受方法执行结果,那么参数改变的必须是栈上存储的地址所引用的堆上内存空间的值;因为不可能通过方法改变栈上的空间内容;



