Java基础细节问题--1

今天看到了这样的代码,如下:

Java基础细节问题--1请大家猜测:最后输出的结果是什么

正确答案是99,100。
calc1与calc2都是有参数的方法。
calc1中用的参数是基本数据类型,调用的时候,方法中的chengji变量的值是由参数(即括号中的chengji)的值复制得到的,方法中的chengji变量的变化与参数chengji数据变化无关。
calc2中用的是自定义数据类型,调用的时候,方法中的s.score为参数stud类中的属性,执行方法时,将s的地址传给方法中的s.score,所以方法中的s.score的变化即为参数位置s对象的变化。

综上所述,得到一个结论:
参数为基本数据类型,参数变化不保留。
参数为引用数据类型,参数变化要保留