今天看到了这样的代码,如下:
请大家猜测:最后输出的结果是什么
正确答案是99,100。
calc1与calc2都是有参数的方法。
calc1中用的参数是基本数据类型,调用的时候,方法中的chengji变量的值是由参数(即括号中的chengji)的值复制得到的,方法中的chengji变量的变化与参数chengji数据变化无关。
calc2中用的是自定义数据类型,调用的时候,方法中的s.score为参数stud类中的属性,执行方法时,将s的地址传给方法中的s.score,所以方法中的s.score的变化即为参数位置s对象的变化。
综上所述,得到一个结论:
参数为基本数据类型,参数变化不保留。
参数为引用数据类型,参数变化要保留
本文深入探讨了Java中基本数据类型和引用数据类型的参数传递机制。通过具体实例,详细解释了为何基本数据类型参数的变化不会保留,而引用数据类型参数的变化会保留。这对于理解Java中的方法调用和内存管理至关重要。

被折叠的 条评论
为什么被折叠?



