JavaEE
当前位置:首页 > 学习资料 > JavaEE >

常见Java面试题之对象被当作方法参数是值传递还是引用传递

更新时间:2020年07月28日   作者:spoto
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?很多新手同学对这个问题的理解都是模棱两可。但是对象参数传递也是最经常遇到的一个基础Java面试题,不管原来知道不知道,现在告诉你,赶紧记牢面试无忧!

常见Java面试题之对象被当作方法参数是值传递还是引用传递

对象被当作方法参数是值传递还是引用传递

值传递。Java语言的方法调用只支持参数的值传递。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的属性可以在被调用过程中被改变,但对对象引用的改变是不会影响到调用者的。C++和C#中可以通过传引用或传输出参数来改变传入的参数的值,但是在Java中却做不到。
Java中没有传引用实在是非常的不方便,这一点在Java 8中仍然没有得到改进,正是如此在Java编写的代码中才会出现大量的Wrapper类(将需要通过方法调用修改的引用置于一个Wrapper类中,再将Wrapper对象传入方法),这样的做法只会让代码变得臃肿,尤其是让从C和C++转型为Java程序员的开发者无法容忍。

本题涉及java知识点分析

Java 包装类(Wrapper)

Java Wrapper类可将Java的原始数据类型处理为对象的方式。 Java wrapper类旨在将原始类型存储为引用类型,并将其视为实例化内存对象的引用。这样做的主要好处是,特定原始类型的相应wrapper类可以容纳许多类型的信息,以便提供诸如从一种类型到另一种类型的转换以及大量其他方便的功能。

值传递和引用传递

Java值传递

在方法被调用时,实参通过形参把它的内容副本传入方法内部,此时形参接收到的内容是实参的一个拷贝,因此在方法内对形参的任何操作,都仅仅是对这个副本的操作,不影响原始值的内容。

Java引用传递

引用也就是指向真实内容的地址值,在方法调用时,实参的地址通过方法调用被传递给响应的形参,在方法体内,形参和实参指向同一块内存地址,对形参的操作会影响真实内容。

以上是思博网络为广大奔走在面试以及学习阶段的java同行整理的关于Java 值传递和引用传递可能遇到的面试问题以及重要知识点,可能存在不足或者需要补充,您有什么观点和认识,欢迎指正补充,大家一起快乐学Java,高薪在就业!
如果遇到什么疑问或者困惑,可以联系我们,乐于与您分享讨论!
免费试听
思博SPOTO在线咨询

相关资讯

7天无条件退款
24小时实验室开放
全程跟踪服务
无条件免费重读