当我遇到More Joel on Software时,我正在阅读Joel Spolsky,这是关于某种特定类型的程序员的一些知识,他们知道Java/C#(面向对象编程语言)中intInteger之间的区别。

那么区别是什么呢?

最佳答案

在Java中,的'int'类型是基元,而'Integer'类型是对象。

在C#中,的'int'类型与System.Int32相同,并且为a value type(即更像Java'int')。整数(就像任何其他值类型一样)可以被boxed(“包装”)成一个对象。

对象和基元之间的差异在一定程度上超出了此问题的范围,但可以总结一下:

对象提供了用于多态的工具,通过引用传递(或更准确地说,通过值传递引用),并从heap进行分配。相反,原语是不可变类型,它们按值传递,并且通常从stack分配。

10-08 08:05