面试_java_参数传值机制

81 阅读1分钟

参数传递分为值传递和引用传递,但在java中只有值传递,就算传的是引用,也只是看作一串地址值,并且都是传的值副本。

形参的修改是否会影响实参指向的对象的内容?

  • 如果传的是基本类型,由于原始内容和副本都是存储实际值,并且是在不同的栈区,因此形参的操作,不影响原始内容。
  • 如果传的是引用类型,那么就会有两个引用指向同一个堆中的对象,则形参的操作,会影响实参指向的对象的内容。
  • 特别的,如果传的是String,由于其不可变性,同样会生成一个新的String副本,原String对象不变。


segmentfault.com/a/119000001…