如果有包装类可以使Java成为纯面向对象的语言,那么为什么Java还支持可以在其中使用的原始数据类型?这是否是重复的问题:当我们有包装类时,为什么支持原始数据类型?
原始数据类型存在的主要原因是创建对象、分配堆栈太昂贵,而且会带来性能损失。正如你所知,像int、float 等基本数据类型最常用,所以将它们作为对象化将会产生巨大的性能损失。因此,Java 的设计者认为将其作为非对象更好。 当然,如果你准备在性能上做出一点牺牲,但需要更多的面向对象编程功能,那么就可以使用包装器。在这种情况下,你可以使用包装器。希望这些信息对你有所帮助。
出于性能考虑,在其他一些语言中,如SmallTalk,像int或char这样的类型也是对象,并且可以在它们上面调用方法。这更符合理论,但当前的实现速度较慢。原始类型是纯度和性能之间的折衷。
在必要时(可能存在null值或与集合框架一起使用),Java提供了包装类,例如java.lang.Integer等。
Integer
等)自Java 1.0以来就存在了;它们在Java 1.4中并不是新的。 - Jesper