一尘不染

Java和C#中的int和Integer有什么区别?

java

当我遇到Joel Spolsky的时候,我正在阅读《更多关于软件的 Joel》,他说了一种有关特定类型的程序员的一些知识,他们知道Java / C#(面向对象编程语言)中an int和an 之间的区别Integer。

那么区别是什么呢?


阅读 408

收藏
2020-03-03

共1个答案

一尘不染

在Java中, “ int”类型是原始类型,而“ Integer”类型是对象。

在C#中, “ int”类型System.Int32与值类型相同,并且是值类型(即更像Java的“ int”)。可以将整数(就像其他任何值类型一样)装箱(“包装”)到对象中。

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

对象为多态提供了便利,通过引用传递(或更准确地说,通过值传递引用),并从堆中分配对象。相反,基元是不可变的类型,它们按值传递,并且通常是从堆栈分配的。

2020-03-03