对于这个问题,网上一搜,信息一坨一坨的......,理解各式各样......。我认为没有必要追求到底是值传递还是引用传递,弄清底层机制即可。
说到值传递引用传递,不得不看jvm的堆栈问题,可以参考http://gogomin.bokee.com/4055877.html
在这说一下自己的理解(高手指点,新手借鉴!):
对于基本数据类型,好像网上争论很少,基本都默认是值传递,传递变量引用的值;这点我也不想深入探究,无论是传递的“值引用”还是“引用值”,反正是在栈中新重建了一个变量。
对于引用数据类型,在栈中存在堆中某个对象的一个引用,对象作为参数传递,到底是值传递还是引用传递,我认为好像一个文字游戏,个人观点是,如果认为传递的是堆中某个对象的引用,它是一个值(如内存地址),那可以理解为值传递;如果认为传递的就是对象的引用,那就是引用传递。