什么是“值语义”,什么是“隐式指针语义”?
最佳答案
Java 对对象类型使用隐式指针语义,对基元使用值语义。
值语义意味着您直接处理值并传递拷贝。 这里的重点是,当您拥有值(value)时,您可以相信它不会在您背后改变。
使用指针语义,您没有值,只有“地址”。 其他人可以改变那里的东西,你不知道。
C++ 中的指针语义:
void foo(Bar * b) ...
... b->bar() ...
你需要一个 * 来请求指针语义和 -> 调用指针上的方法。
Java 中的隐式指针语义:
void foo(Bar b) ...
... b.bar() ...
由于您无法选择使用值语义,因此不需要 * 也不需要区分 -> 和 .,因此是隐含的。
关于java - ‘value semantics’ 和 ‘pointer semantics’ 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/166033/