Java中什么是值传递?什么又是引用传递?
4个回答
展开全部
java内存中,主要有两块存放数据的,一个叫栈,一个叫堆,
基本数据类型都是存放在栈里面的,比如char,byte,short,int,long,float,double,boolean,
int i=1;i和1都是存储在栈里面的
复杂数据类型,比如自定义对象,MyObject o=new MyObject("参数");o这个引用变量(或者叫指针)是存放在栈里面的,我们new的空间(或者说这个对象的数据内存块)是存放在堆里面,o所代表的值就是堆里面内存块的首地址
具体的看看下面的例子
http://www.shaguang.com/post/34.html
基本数据类型都是存放在栈里面的,比如char,byte,short,int,long,float,double,boolean,
int i=1;i和1都是存储在栈里面的
复杂数据类型,比如自定义对象,MyObject o=new MyObject("参数");o这个引用变量(或者叫指针)是存放在栈里面的,我们new的空间(或者说这个对象的数据内存块)是存放在堆里面,o所代表的值就是堆里面内存块的首地址
具体的看看下面的例子
http://www.shaguang.com/post/34.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JAVA中 基本数据类型是值传递
复杂数据类型(自定义类型,对象) 是引用传递
这主要是因为java的对象名 本身只代表引用类型 不代表对象
复杂数据类型(自定义类型,对象) 是引用传递
这主要是因为java的对象名 本身只代表引用类型 不代表对象
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于基本类型(byte shor int long float double boolean...) 传实参的时候直接把具体值复制,就是你说的值传递
对于对象类型,实际数据很大,所以传实参的时候只传递一个这个对象的编号,也就是引用。
对于对象类型,实际数据很大,所以传实参的时候只传递一个这个对象的编号,也就是引用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询