Java 自动包装器 : Behavior as method inputs?

标签 java wrapper

我想知道自动包装器在被方法调用时到底如何表现。在 Java 中,基本类型通过值调用,对象通过引用调用,但是自动包装器呢?

它们是按值调用还是按引用调用?

如果确实按值调用它们,那么通过引用调用它们的最佳方法是什么? (更多层包裹?)

最佳答案

I was wondering how exactly Auto Wrappers behave when called by a method. In Java, primitive types get called by value and objects get called by reference, but what about Auto Wrappers?

这些所谓的“自动包装器”只是普通的类。当您调用它们的方法以及传递它们时,它们的行为就像普通类一样。

当您谈论“按值调用”或“按引用调用”值时,这是术语上的废话。 “按值”和“按引用”是关于参数传递语义,而不是关于调用语义,并且在 Java 中一切都是按值传递。一切。对于引用类型,您将按值传递引用。

(对于真正的“按引用传递”,您实际上是(通常)调用者变量之一的地址。然后(假设的)被调用方法可以更新该变量。在 Java 中您不能这样做。语言不支持,JVM指令集也不支持。)

包装器类型唯一不寻常的事情是它们可以进行自动装箱和自动拆箱。这与参数传递语义正交,因为这些都是“转换”的示例,并且所有转换都发生在传递参数之前。

关于Java 自动包装器 : Behavior as method inputs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36101278/

相关文章:

运行在 Apache Tomcat 上的 Java TCP 服务器程序

java - 在java中实现运行异步作业的优雅取消的最佳方法

java - 如何将传递的 c++ 长指针转换为 java 指针或数组

java - 具有动态部分的 RecyclerView

java - 在 Java Spring Boot 中将 CSV 转换为 JSON 数组

javascript - 使用 javascript 将参数发送到 java 应用程序

python - Cython cdef 类不显示文档字符串或 __init__ 参数

python - 如何在f2py中链接FFTW3?

c++ - 苹果操作系统 : using detachNewThreadSelector method inside a C++ class method

java - isDigit() 为字母返回 true