![Java基础-Integer常见面试题](https://imgs.xnip.cn/cj/jy/48/4251ef2e-01ce-48d0-8359-ade86a4dbbd4.jpg)
Integer的缓存机制是什么?
Integer的缓存机制是,Java对于-128到127之间的数,会进行缓存,Integer i = 127时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存中拿取,不会再从新new一个对象。
Java中的IntegerCache是一个静态内部类,用于缓存数据以节省内存和提高性能。在Java 5中引入了这个特性,IntegerCache中有一个cache[]数组,用于缓存整数常量,常量池的大小为一个字节(-128~127)。当使用自动装箱时,如果值在[-128,127]区间内,则生成的Integer对象将从缓存中获取,而不是创建新的对象。这样可以避免频繁创建对象,从而提高性能。
Integer和int的区别是什么?
Integer和int的区别是,int是基本数据类型,而Integer是int的包装类。int变量存储的是数值,而Integer变量存储的是引用对象的地址。
Java中支持自动装箱和拆箱的数据类型有:byte、short、int、long、float、double、char、boolean。
Java中自动装箱和拆箱的优缺点是什么?
自动装箱和拆箱的优点:方便了程序员的编程;缺点:可能会出现空指针异常。