当我遇到Joel Spolsky时,我读的是《 更多关于软件的 Joel》,他说了一种有关特定类型的程序员的一些知识,他们知道Java / C#(面向对象编程语言)中an int和an 之间的区别Integer。
int
Integer
那么区别是什么呢?
在Java中, “ int”类型是基元,而“ Integer”类型是对象。
在C#中, “ int”类型System.Int32与值类型相同,并且是值类型(即更像Java的“ int”类型)。可以将整数(就像其他任何值类型一样)装箱(“包装”)到对象中。
System.Int32
对象和基元之间的差异在一定程度上超出了此问题的范围,但可以总结一下:
对象 为多态提供了便利,通过引用传递(或更准确地说,通过值传递引用),并从堆中分配对象。相反, 基元 是不可变的类型,它们按值传递,并且通常是从堆栈分配的。