专业编程基础技术教程

网站首页 > 基础教程 正文

int和Integer有什么区别?

ccvgpt 2024-08-06 12:35:24 基础教程 8 ℃

int和Integer有什么区别?

int是整形数字,是Java 的8个原始数据类型(Primitive Types,boolean, byte, short, char, int, float, double, long)之一。Java 语言虽然号称一切都是对象,但原始数据类型是例外。

Integer 是 int 对应的包装类,它有一个int 类型的字段存储数据,并且提供了基本操作。

int和Integer有什么区别?

JDK1.5引入了自动装箱与自动拆箱功能,Java可根据上下文,实现int/Integer, double/Double, boolean/Boolean 等基本类型与相应对象之间的自动转换,为开发过程带来极大便利。

最常用的是通过new方法构建Integer对象。但是,基于大部分数据操作都是集中在有限的、较小的数值范围,在JDK1.5 中新增了静态工厂方法 valueOf,其背后实现是将int值为-128 到 127 之间的Integer对象进行缓存,在调用时候直接从缓存中获取,进而提升构建对象的性能,也就是说使用该方法后,如果两个对象的int值相同且落在缓存值范围内,那么这个两个对象就是同一个对象;当值较小且频繁使用时,推荐优先使用整型池方法(时间与空间性能俱佳)。

自动装箱、拆箱

javac 替我们自动把装箱转换为 Integer.valueOf(),把拆箱替换为 Integer.intValue()。

包装类线程安全

包装类里存储数值的成员变量 value,不管是Integer还是Boolean等,都被声明为 private final,所以它们都是不可变类型,保证了基本的信息安全和并发编程中的线程安全。

最近发表
标签列表