结论: Java都是值传递,即参数传递本质上是赋值的操作(即把变量赋值给方法形参)。只不过因为引用对象作为参数时,参数传递时的赋值操作是浅拷贝(Shadow Copy),即两个变量指向同一个地址,当方法内更改变量时,更改了指向的内存,方法外的变量指向相同的地址,所以方法外的变量值也会更改。(String除外,因为String是不可更改的,对String的更改实际上是指向了一个新的内存地址) 深层分析 触类旁通