java中值传递与引用传递的区别
2023-12-14 19:34:10
java中函数传参分为两种类型,值传递和引用传递。
1.值传递
我们先来看下面这个代码:
而他的运行结果是这样的:
这说明主函数中n的值并没有随着调用fuc函数发生改变,这就是值传递。
那究竟什么类型的变量属于值传递呢?
一般来说,基本数据类型都是属于值传递。这时有可能会有同学脑袋短路了,我就把八大基本数据类型放在下面了。
基本数据类型
(1)整数类型:byte、short、int、long
(2)小数类型:float、double
(3)字符类型:char
(4)布尔类型:boolean(这么用心的作者,我直接点赞加关注(●'?'●))
2.引用传递
这个就是经常把各位同学搞混的传递。
我们还是来先看代码:
此代码的运行结果:
我们不难发现主函数的数组被fuc函数改变从[2 ,2 , 2?,2 ]变为[0 ,2 ,2 ,2 ]
这就是引用传递。
那引用传递是那些数据呢?
引用传递一般都是对象数据,也就是int [ ]? ret = new int[ ]{0 },这样需要new参与定义参数的数据。
接下来是大家在做题过程中遇到的一些非常重要的问题!!!!
1.String
String是引用传递,大家可以把他理解为一个字符串数组。
那这时一定就有同学要问了:
为什么String是引用传递,但是函数却改变不了他的值呢?
大家可以发现hello并没有变为world
这是因为字符串String类型在函数中是不能够改变的
而我们在fuc中令str = "world"本质上是? str = new String("world");
相当于:
我们没有改变str 而是让它指向的对象发生了变化,而原来的“hello”对象还在主函数中没有发生变化,当fuc完成,其中新建的对象“world”被销毁,此时str又重新指向了hello所在的内存,所以还是输出“hello”。
那么以上就是有关java中值传递与引用传递的区别,都看到这里了,点个赞再走吧(? ω ?);
文章来源:https://blog.csdn.net/a13931329858/article/details/132729606
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!