有个问题我纠结了好久!!求各路大神帮忙解答一下!!在线等

JJJJxss 2013-09-05 11:38:39
Java 是如何传递参数的?是by value还是by reference?

搞不明白啊啊啊啊啊快要抓狂了。。。。
...全文
133 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jzq114 2013-09-05
  • 打赏
  • 举报
回复
java中的参数传递只有一种方式就是值传递。参数的类型分为两种,基本类型和引用类型,如果传递的参数是基本类型的,那么就只是把基本类型的值复制给行参用,而不会改变实参的值。如果参数类型是引用类型的,那么传给行参的就是实参的首地址,对行参的操作就相当于是对实参的操作,而操作后的结果也会保存下来,实参也就变成了操作后的结果的值了。
  • 打赏
  • 举报
回复
引用就是个地址,最终都是值传递
tony4geek 2013-09-05
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
引用 6 楼 u011990496 的回复:
根据Java规格文件的说法-All parameters (values of primitive types, and values that are references to objects) are passed by value [JLS sect 8.4.1]---- 所有参数应该都是值传递的。但实际上, 实际经验却告诉我们所有 Java 对象都是引用传递的。所以我们可以这样解释: 基本类型(如int, float, char等)是值传递的也就是by value,而对象(Object)的传递则是by value of reference to object。
如果有不明白的话 可以到http://www.toceansoft.com/c/3324.jhtml 这里看看
  • 打赏
  • 举报
回复
根据Java规格文件的说法-All parameters (values of primitive types, and values that are references to objects) are passed by value [JLS sect 8.4.1]---- 所有参数应该都是值传递的。但实际上, 实际经验却告诉我们所有 Java 对象都是引用传递的。所以我们可以这样解释: 基本类型(如int, float, char等)是值传递的也就是by value,而对象(Object)的传递则是by value of reference to object。
zrl凝望遗失 2013-09-05
  • 打赏
  • 举报
回复
顶3楼,值传递
wind_elf 2013-09-05
  • 打赏
  • 举报
回复
如果参数类型是引用类型的,也是直接把值复制给形参变量。因为实参指向的是一个堆中的java对象,所以此时形参变量也同样指向那个java对象。也就是两个变量指向同一个java对象。此时在方法中通过形参对java对象的改变也就相当于实参对java对象的改变了。

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧