![]() |
1
3
是的,Java总是按值传递的。但对于对象,它会传递参考值。换句话说,对象不会被复制,但它的引用会被复制。在方法内部更改对象的属性也会在方法外部更改对象。 从…起 here ,
关于主题: 编译器只需将引用复制到堆栈中的内存块。 |
![]() |
2
2
Java中的对象是引用,通过值传递的就是这个引用;这意味着Java是通过引用传递对象的,用于实际目的。 编辑 我对“实际目的”一词的使用似乎引起了很多争议,所以让我澄清一下。我的意思是,当大多数人想到“通过引用传递”时,他们想到的是对传入值的更改是在该方法之外持久化的,Java就是这样。例如
这就是我所说的“出于实际目的”;OP的印象是
|
![]() |
Imran · Nim编译器优化标志 7 年前 |
![]() |
Mário Feroldi · 在运行时调用代码中未调用的函数 7 年前 |
![]() |
Artemis · 寄存器与指令之间的差异 7 年前 |
![]() |
pandascope · golang编译器是否使用常数折叠? 7 年前 |
![]() |
Marc · C优化:为什么编译器不将对象视为常量? 7 年前 |