I was reading More Joel on Software when I came across Joel Spolsky saying something about a particular type of programmer knowing the difference between an int
and an Integer
in Java/C# (Object-Oriented Programming Languages).
那么,有什么不同呢?
I was reading More Joel on Software when I came across Joel Spolsky saying something about a particular type of programmer knowing the difference between an int
and an Integer
in Java/C# (Object-Oriented Programming Languages).
那么,有什么不同呢?
In Java,"int"类型是基元,而"Integer"类型是对象.
In C#,"int"类型与System.Int32
相同,是a value type(即更像java的"int").整数(就像任何其他值类型一样)可以被boxed("包装")到一个对象中.
对象和原语之间的区别有些超出了这个问题的范围,但总结一下:
Objects提供多态功能,通过引用传递(或者更准确地说,具有通过值传递的引用),并且从heap分配.相反,primitives是通过值传递的不可变类型,通常从stack分配.