对于基本类型,Java是传值的副本;对于一切对象型变量,Java都是传引用的副本。
“=”不是赋值语句,右边对象地址传给了左边的引用,使得左边的引用指向了右边的对象。对象存储于堆中,引用存储于速度更快的堆栈上。
“=”语句左边是引用(存在栈中),右边new出来的是对象(存在堆中)。“=”左右都是引用的语句,左右引用同时指向了右边引用所指向的对象。
参数传值,都是传递参数的副本,都是传值。
对于基本类型,Java是传值的副本;对于一切对象型变量,Java都是传引用的副本。
“=”不是赋值语句,右边对象地址传给了左边的引用,使得左边的引用指向了右边的对象。对象存储于堆中,引用存储于速度更快的堆栈上。
“=”语句左边是引用(存在栈中),右边new出来的是对象(存在堆中)。“=”左右都是引用的语句,左右引用同时指向了右边引用所指向的对象。
参数传值,都是传递参数的副本,都是传值。