java简单问题,求详细答案如题
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
1个回答
展开全部
这道题是考java中的值传递和引用传递。首先呢,你必须理解这两个概念,什么是值传递,什么是引用传递。
值传递:在具体的实参传递到方法中定义的形参的时候,传递的是值的拷贝,也就是复制一份来的值,这样就有个两个值,在方法内部对参数进行处理的时候,实际上是处理的那个拷贝后的值,而原来的值更本没有改变,因此就不会动。
引用传递:在具体的实参传递到方法定义的形参的时候,传递的是引用的地址的拷贝,也就是对象在堆中的地址,这样的话指针指向实际对象的值是同一个,也就是你传递了引用,其实也就改变了对象本身。
ps:也有一种说法是引用传递也是值传递,其实是不同的说法,本质上都是一样的。
String和数组都是引用数据类型,因此属于引用传递。也就是说他们传递的过程会对值本身产生变化,但是那么问题来了?为什么string没有改变呢?你不是说String也是按引用传递的么?这就涉及到另一 个问题,因为String是final的,因此它的地址是无法改变的,也就是你new之后,再怎么传递,它的值均不会发生改变,那么地址也不会被传递,因此不会发生改变咯。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询