Java中为什么要定义Integer类型?

Java中有int类型了,为什么还要定义Integer类型?直接定义一些数值类也可以实现Integer.valueOf()等方法.是设计的时候的问题吗?

阅读 5.5k
5 个回答

补充一下楼上的答案。

  • int 是基本数据类型,而Integer是一个类。
  • 基本数据类型运算速度更快,成本更低。
  • Integer是一个类继承于 Object 类,方便和其它类一起处理。一些场景,只能使用类的实例,比如你无法将基本数据类型放到 Map 里面去。

一个面向对象的语言,期待将一些都以类的方式进行抽象,但是由于抽象带来的成本开销,所以会存在基本数据类型。

int 是基本数据类型,而Integer是其包装类,注意是一个类。为什么要提供Integer?

  1. 方便在各种类型间转化,通过各种方法的调用。
  2. 泛型使用,例如集合的泛型,List<Integer>,如果写List<int>会报错。
新手上路,请多包涵

基于一切皆是对象的设计

没有Integer,你如何把一个数字装到List????

新手上路,请多包涵

Java努力让一切都变为对象。
但是为了方便还是保留了基本类型
Java5.0之后有了自动包装与解包装,就不需要显示的转换了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题