java中方法传递参数为什么可以不用基本数据类型

 我来答
loveQwithC26
推荐于2017-05-25 · TA获得超过228个赞
知道小有建树答主
回答量:175
采纳率:100%
帮助的人:66.9万
展开全部
可以传递基本类型,只是这个参数出了这个方法,这个参数的改变就消失了。
比如你传了2个int值 a,b进去想要让他们交换数值,是在函数里面他们值是交换的,但是出了函数
,还是原来各自的值。
因为对于基本类型,java是把他们的值传进去了,比如你原来的a是某个元素的属性,比如是5,他只是把5这个数复制一份传过去了,这5只是个数字,并不指向a的属性,你的改动是不会影响到a的属性的
对非基本类型,你在函数里的更改可以影响外面是因为直接把那个对象传进去了,改的是那个对象
战天睿sz
2014-10-09 · TA获得超过125个赞
知道小有建树答主
回答量:185
采纳率:100%
帮助的人:58.7万
展开全部
java中的数据类型分为基本数据类型和引用数据类型,
基本数据类型和引用数据类型的区别主要在存储方式上:
基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上;
引用数据类型在被床架时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。
例如:我有一个类MyDate,其中有属性day,mouth,year等,有构造方法(带参数);
现在为其创建一个对象MyDate d1 = new MyDate(8,8,2008);
在内存中的具体创建过程是:
1)首先在栈内存中位其d1分配一块空间;
2)然后在堆内存中为MyDate对象分配一块空间,并为其三个属性设初值0,0,0;
3)根据类MyDate中对属性的定义,为该对象的三个属性进行赋值操作;
4)调用构造方法,为三个属性赋值为8,8,2008;(注意这个时候d1与MyDate对象之间还没有建立联系)
5)将MyDate对象在堆内存中的地址,赋值给栈中的d1;通过句柄d1可以找到堆中对象的具体信息。
追问
大神、特别感谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式