【6 期】面试官:Java 中方法的参数传递机制

程序设计语言将实参传递给方法(或函数)的方式分为两种:

  • 值传递:方法接收的是实参值的拷贝,会创建副本。
  • 引用传递 :方法接收的是实参所引用对象在堆中的地址,不会创建副本,对形参的修改将影响到实参。

很多程序设计语言(比如 C++、 Pascal )提供了两种参数传递的方式,不过,在 Java 中只有值传递。

为什么说 Java 只有值传递呢?

Java 中将实参传递给方法(或函数)的方式是 值传递:

  • 如果参数是基本类型,传递的就是基本类型的字面量值的拷贝,会创建副本。
  • 如果参数是引用类型,传递的就是实参所引用的对象在堆中地址值的拷贝,同样也会创建副本。

既然说到拷贝了,那深拷贝和浅拷贝的区别是什么呢?

  • 浅拷贝:浅拷贝会在堆上创建一个新的对象(区别于引用拷贝),不过,如果原对象内部的属性是引用类型的话,浅拷贝会直接复制内部对象的引用地址,也就是说拷贝对象和原对象共用同一个内部对象。
  • 深拷贝:深拷贝会完全复制整个对象,包括这个对象所包含的内部对象。

那什么是引用拷贝呢?

简单来说,引用拷贝就是两个不同的引用指向同一个对象。

Java 面试题精选 文章被收录于专栏

无论你是准备面试,提升职场竞争力,还是单纯热爱 Java 编程。本专栏将为你呈现一系列精选的 Java 面试题,涵盖从基础到高级的各个层面,帮助你全面提升 Java 编程知识。

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务