+ 我要发布
我发布的 我的标签 发现
浏览器扩展
斑点象@Edge

Java 中 int 和 Integer 的区别,为什么要有包装类?

Java⼀开始只有int,没有 Integer。 之所以保留int等primitive types原始数据 类型,纯粹是因为效率,也就是性能考虑。 也正是因为java保留了原始数据类型,所以⼀直被很多oop 语⾔所诟病,因为java不是pure oop,也就是java并没有真正实现万事万物皆对象,int值 就不是对象,你不能做出类似 var s = 1.toString() 这种操作。 但是后期,像scala,kotlin,swift,dart,都实现了纯oop,所以他们的int类型,也是⼀个对象。 那我们知道了,java有这个问题,jcp 那些⼈当然也明⽩,所以着⼿开始治理这个问题。 第⼀步就是引⼊⼀个包装类 ,⽐如int就有Integer与之对应。 Integer对象就可以实现类似toString这种操作。 但是短时间内,并不会⼲掉int类型,因为这样会破坏原有的代码。 造成breaking changes,这也是java所极⼒避免的问题。 也正是因为java这种态度,所以java应⽤⽐较⼴泛。 ⽣产中的代码,java会尽量保证其能够正确运⾏,任何⼀个breaking changes,都是对⽣态系统 的破坏,多来⼏次,⼈家就离你⽽去了。 但是从⻓远看,java的int和Integer,都将会被统⼀起来。
我的笔记