开发者社区 问答 正文

Java基本类型的参数传递和引用类型的参数传递有啥区别?

Java基本类型的参数传递和引用类型的参数传递有啥区别?

展开
收起
小天使爱美 2020-04-07 12:24:08 1203 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 对于基本类型,在main方法中调用swap方法时,main方法还未结束。因此,系统分别为main方法和swap方法分配两块栈区,用于保存main方法和swap方法的局部变量。main方法中的a、b变量作为参数值传入swap方法,实际上是在swap方法栈区中重新产生了两个变量a、b,并将main方法栈区中a、b变量的值分别赋给swap方法栈区中的a、b参数(就是对swap方法的a、b形参进行了初始化)。此时,系统存在两个a变量、两个b变量,只是存在于不同的方法栈区中而已。对于引用类型,统一样复制了参数的副本传入swap方法,但关键在于参数只是一个引用变量,所以系统复制了参数变量,但并未复制参数对象。

    2020-04-07 12:25:19 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等