我有一个试用期的工作面试(?我不确定这是不是这个词),面试官让我告诉他结构和班级之间有什么区别。
所以我告诉他我知道的一切以及我在 msdn 上读到的一切。
那家伙说“不够”,我没有头绪。于是他说:
结构体已经过优化,所以如果存在整数和浮点数,它们有一些相同的部分,那么它将节省这个空间,所以结构体
int=0
的float=0
大小是int=int.MAX
,的一半float=float.MIN
。
好的。所以我就像 - 没听说过。
但是,在面试之后,我正在考虑它,这对我来说真的没有意义。这意味着,当我们更改其中某个变量的值时,结构大小会有所不同。而且在内存中不可能真的在同一个地方,万一扩展的时候发生碰撞怎么办。而且我们必须在某处写我们要跳过的位,不确定它是否会提供任何优化。
另外,他在乞讨时问我Java中的struct和class有什么区别。我已经回答过,Java 中没有结构,他说“不适合程序员,但数字类型是结构”我有点像 WTF。
基本上问题是:
这家伙是否知道一些很难知道的事情(我的意思是,我在网上寻找它,找不到东西)
或者也许他对自己的工作一无所知,并试图在工作面试中看起来很酷。