当前位置: 首页 > 面试题库 >

“值语义”和“指针语义”是什么意思?

艾文斌
2023-03-14
问题内容

“值语义”是什么意思,“隐式指针语义”是什么意思?


问题答案:

Java对对象类型使用隐式指针语义,对基元使用值语义。

值语义意味着您直接处理值,并传递副本。这里的重点是,当您拥有一个价值时,您可以相信它不会在您的背后改变。

使用指针语义时,您没有值,而您有一个“地址”。别人可能会改变那里的东西,你不知道。

C ++中的指针语义:

void foo(Bar * b) ...
... b->bar() ...

您需要*来询问指针语义,并需要->来调用pointee上的方法。

Java中的隐式指针语义:

void foo(Bar b) ...
... b.bar() ...

由于您没有选择使用值语义的选择,因此不需要*,也不需要->和。之间的区别,因此无需使用。



 类似资料:
  • 问题内容: Go中的 Value语义 和 Pointer语义 是什么意思?在本课程中,作者在解释数组和切片的内部时曾经多次提到上述术语,而我对此并不完全理解。 问题答案: 当您调用一个函数或方法并将参数传递给它时,将根据值创建一个副本,并且该函数只能访问这些副本。 这意味着,如果函数尝试修改/更改副本,则不会更改原始值。 例如: 输出(在Go Playground上尝试): 即使修改了其参数,调用

  • 问题内容: 我已经在CSS对话中看到了很多。语义正确是什么意思? 问题答案: 正确贴标签 这意味着您正在调用的东西实际上是什么。经典示例是,如果某物为,则应包含数据的行和列。将其用于布局在语义上是不正确的- 如果不是,则是说“这是一个表”。 另一个示例:通常应使用列表(或)对相似项()进行分组。您 可以 将a 用于组,将a 用于每个项目,然后将每个项目的样式设置为在单独的行上并带有一个项目符号点,

  • 问题内容: 我只是在玩Go,还没有关于何时按值或按引用传递结构的良好心理模型。 这可能是一个非常愚蠢的问题,但我只想尝试一下,看看我是否仍在处理同一对象,或者是否已对其进行了复制(按值传递)。 有没有一种方法可以打印对象的指针(如果gc更改了指针值,则为内部ID)? 在我的Windows上给出(8g编译版本): 为什么go例程中的指针值显示不同的值?原始对象上的数量确实发生了更改,因此它正在使用同

  • 我尝试在浏览控制台中测试此语法,但遇到错误: 对于上面的代码,我关心的是是否会引发任何错误。

  • 问题内容: 好的,这可能有点钝了,但是Node.js的目的/需求是什么 我主要通过CloudFoundry注意到了它,但是不太确定它应该做什么。但是我猜想它可能相当大,因为为什么VMWare会支持它。 提前致谢。 问题答案: 这是一个… 高效且100%事件驱动的IO框架, 足够灵活,可以使用它可以找到的最佳基础操作系统功能, 以高级编程语言(客户端最有可能使用的相同语言)展示API, 在该语言的最

  • 我今天遇到了,我不确定我是否理解它的用途。。。在Spring文档中,它说 允许同一类处理多个请求类型的控制器实现。这个类的子类可以用表单的方法处理几种不同类型的请求 在另一个网站上,他们说 它将多个请求处理方法聚合到单个控制器中,因此相关功能可以很容易地保持在一起。 我仍然不明白扩展与下面的相比是更好还是不同?或者,更像是旧版本Spring的遗留产品?我觉得我有一些基本的误解。。。