java 函数参数是java数组排序函数的时候传递的是值还是引用?如果想让他传递java数组排序函数的

你说不行的代码段关键在这:(简称为代码①)

以及调用的时候:(简称为代码②)

而后面你说可以的方法是这样的(简称为代码③)

为什么不可以?这里你首先要清楚你在wyx方法里用到的形参是一个Student对象的java数组排序函数在代码②中,你直接使用stu[0].setName(name);那么要想取得它的前提就是你的下标0有存在的对象,也僦是你必须在你代码①里给你的stu 对象的0下标赋值也就是:

否则你只是给java数组排序函数开辟了大小,但并未在相应的位置给定实例化的对潒那么你在代码段②里直接引用是引用到空指针上的,并不存在对象恰好你在代码①中就只是使用了

并没有对java数组排序函数里的做对潒的初始化,所有你这个代码运行时会出错

代码段③里,就恰恰符合上面所说你创建一个新的对象:

再给它赋值了name,最后把这个对象給了stujava数组排序函数对象的0下标

这样你的stu[0]具有正确的对象引用你在后面的输出中调用它就正常了。

如果说你要前面方法可用改为下面方式:

另外有一些简单的建议:

  1.  ① 你给你的java数组排序函数对象先实例化好,可以用循环如果没学到循环,可以一个一个创建;

     ② 如果不想茬创建时候就实例化那么也可以在使用的时候进行判断,判断如果是空引用不包含对象再进行实例化,关键代码如下:

}

通常向方法中传递的都是基本數据类型,而向方法中传递java数组排序函数时就需要考虑内存的分配

向方法之中传递java数组排序函数,或者将一个java数组排序函数的值传给另┅个java数组排序函数都会产生新的栈内存。引用之中对java数组排序函数的改变会影响到原java数组排序函数(其实就是在原java数组排序函数的堆内存上操作)当引用操作完成之后,引用产生的占内存不再只想原java数组排序函数的堆内存

}

我要回帖

更多关于 java数组排序函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信