Java Pass by Value2025年3月29日 | 阅读 4 分钟 人们通常将按值传递和按引用传递这两个术语放在一起讨论。在面试中,人们经常问“Java 是按值传递还是按引用传递,还是两者都是?”,这确实令人困惑。所以这个问题的答案是,Java 严格来说是按值传递。Java 中没有按引用传递。 让我们来了解一下传递参数给函数的几种不同机制
如今,最常用和最常见的两种机制是按值传递和按引用传递。让我们来讨论一下 按值传递:在按值传递的概念中,方法是通过传递一个值来调用的。因此,它被称为按值传递。它不会影响原始参数。 按引用传递:在按引用传递的概念中,方法是通过实际参数的别名或引用来调用的。因此,它被称为按引用传递。它将对象的唯一标识符转发给方法。如果我们更改了参数的实例成员,它将影响原始值。 Java 不支持按引用传递的概念。 关于在 Java 中传递的参数现代编程语言中传递参数的基本概念是按值传递和按引用传递。但是,在 Java 中,按引用传递的概念被弱化了。它只支持按值传递的概念。 原始变量保存实际值,而非原始变量保存引用变量。但是,两个变量都使用栈内存来存储值。更多关于 Java 数据类型 的信息。 在 Java 中,在方法调用期间,会创建每个参数的副本,然后将其传递给方法。 对于原始数据类型,它会复制栈内存中的值,然后将其传递给方法。对于非原始数据类型,它会指向栈内存中指向堆中实际数据的引用。当我们传递一个对象时,它会从栈内存中复制一个引用并将其传递给被调用方法。 让我们通过一些例子来演示一下 创建一个具有对象和方法的 Bike 类。 Bike.java 现在,创建一个 TestSpeed 类来交换变量 TestSpeed.java 输出 Apache's Speed is =180.0 Pulsar's Speed is =200.0 Pulsar's Speed is =200.0 从上面的输出中,我们可以看到 swap 方法不起作用。它不起作用是因为 Java 是按值传递的,而在这里,我们传递的是对象的引用。所以很清楚,Java 不支持按引用传递。 解释:在上面的程序中,当我们使用 new 运算符创建一个 Bike 类的实例时,会创建一个类实例,并且变量保存着对象存储所在内存的引用。 在调用 swap() 方法时,我们创建了两个新变量 o1 和 o2,它们指向 apache 和 pulsar 变量的内存位置。下面是上面程序中 swap 方法的实现 正如我们可以从上面的代码片段中看到的,o1 和 o2 的值被改变了。它们是 apache 和 pulsar 引用位置的副本。因此,它们没有改变输出中 apache 和 pulsar 的值。 Java 按值传递示例通过值传递参数不会影响原始变量。下面是按值传递的示例 PBVDemo.java 输出 Value (before change)= 100 Value (after change)= 100 从上面的输出中,我们可以看到原始值不受按值传递机制的影响。 另请参阅 Java 中的按值调用和按引用调用。 |
使用 PDF 文件通常涉及创建、修改和格式化以满足特定需求。分块是将单个页面的内容分成更小的部分,并在多个页面上重新分发,这对于打印、海报或提高可读性很有用。它涵盖了开发一个 Java 程序来使用...
5 分钟阅读
Java 中的构造函数 Java 中的构造函数类似于方法,但有几处不同。构造函数与类名相同。构造函数没有返回类型。如果 Java 程序中尚未定义构造函数,Java 程序会自动创建一个...
阅读 4 分钟
Java 是一种通用、健壮、安全且面向对象的编程语言。它是一种高级语言,即它的语法使用类似英语的语言。它由 Sun Microsystems 于 1995 年开发。现在由 Oracle 维护和分发。Java 拥有其运行时环境和...
阅读 3 分钟
零矩阵问题是一个经典的编程挑战,涉及根据矩阵中的零来操作矩阵,将所有行和列设置为零。这个问题不仅发人深省,而且在计算机科学和数据... 方面也有实际应用。
阅读 6 分钟
java.text.ChoiceFormat 类包含一个 hashcode() 函数。使用 ChoiceFormat 类获取选择格式对象的哈希码。返回表示此哈希码值的整数。语法:public int hashCode() 参数:此方法不接受任何参数。返回值:...
阅读 2 分钟
在数组中计算每个查询的最大 XOR 值的问题是一个非常有趣的话题,它涉及到位操作技术和 Trie(前缀树)数据结构。我们得到一个名为 nums 的非负整数数组……
阅读 10 分钟
软件工程和计算机科学基于两个基本概念:解析树 (PTs) 和抽象语法树 (ASTs)。编写可靠有效的代码需要理解它们之间的区别。尽管它们在目的和独特功能上有所不同,但两者对于解析和解释都是必不可少的……
阅读 3 分钟
Java 中找不到或无法加载主类错误 在 Java 编程语言中,经常会遇到错误和异常。但是,一些最流行和最常见的错误经常被初学者程序员遇到。在这些错误中,找不到...
5 分钟阅读
Java 中的堆实现 Java 中的堆是一种特殊的数据结构,其中根节点或父节点与左子节点和右子节点进行比较并按顺序排列。假设 x 是一个根节点,y 是一个子节点...
21 分钟阅读
java.time.chrono.JapaneseDate 具有 isSupported() 方法。JapaneseDate 类用于确定给定的日历字段是否受支持。语法:public boolean isSupported(TemporalField field) 参数:上述函数允许我们检查给定的日期是否与此类型的日期兼容...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India