开发者社区> 问答> 正文

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

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

展开
收起
小天使爱美 2020-04-07 12:24:08 1177 0
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
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载