Java方法参数传递_对象引用问题_底层Jvm内存模式解析

方法的参数传递

  • 1、如果方法的参数是基本数据类型,那么实参向方法传参数时,直接传递值,将实参的值复制给形参,即在jvm栈中新建一个参数内存,再复制一份实参的内存数据给形参的内存。
  • 2、如果方法的实参时对象,那么实参向方法传参数时,也是直接传递值,但此时该值是实参所指对象的jvm内存堆地址(引用对象在堆内存中的地址),也就是实参和形参这时指向同一个对象,对象也只是创建一次。
    原因:
    因为基本数据类型的值直接存在栈内存中,对象类型的数据在栈中存其对象所在的堆地址,对象的值存在堆内存中。
    本质上方法参数传递的值都是变量在栈内存中所存的值。

Jvm简单内存模式

Java方法参数传递_对象引用问题_底层Jvm内存模式解析