您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 址传 >

java值传递和地址传递

发布时间:2019-06-24 20:28 来源:未知 编辑:admin

  java的引用类型是地址传递,可是在operater中和main中输出结果为什么不一样呢?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  知道合伙人软件行家采纳数:11004获赞数:24360已经做过两个上架的app和两个网页项目.向TA提问展开全部

  引用传递是把形参和实参的指针指向了堆中的同一对象,对象的引用和数组的引用。

  实参,Java的基本数据类型,如int,double等在函数的参数传递时,传递的是副本。String也属于这一范畴。

  reset(p);//传递的是p的指针地址,方法里面在对p的属性进行修改,方法结束后影响依然存在。

  例如 String a = KKK; 那么 “KKK”是创建的String对象, a 则是这个对象的引用,或者说a保存对象“KKK”在内存中的地址

  执行函数operater时,实际上在栈内存中又产生了一个新的变量,该变量是传入参数b的复制,这时候你可以理解成在栈内存中存在两个变量,一个是main方法中定义的b变量,一个是operater方法中定义的b变量的复制,两个变量都指向堆内存中存在的b的string对象, 然后方法中你执行 y=x;实际上只是改变了在operater中生成的b变量复制的值,b变量的值实际上并没有发生改变。

http://abetterapp.com/zhichuan/97.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有