专业编程基础技术教程

网站首页 > 基础教程 正文

每天学习一个面试题

ccvgpt 2024-08-06 12:36:44 基础教程 13 ℃

问:基本类型与包装类型的主要区别

Integer a=new Integer(0);//通过new 创建对象
Integer b=new Integer(0);
System.out.println(a==b) ;//此时a和 b所指的对象不同,所以结果是false.

Integer d=0;//直接赋值并没有创建对象
Integer c=0;
System.out.println(c==d);//结果true,没有超出范围.从缓存中返回同一个对象的引用

Integer f=128;//创建对象
Integer g=128;
System.out.println(f==g);//结果false,超出范围相当于第一种情况,通过new创建对象

当我们直接给一个 Integer 类型的变量赋值的时候,会默认调用 Integer 的 valueOf方法。

Integer 具有缓存值 IntegerCache.low 和 IntegerCache.high ,对应的值分别是 -128 和 127。当我们给一个 Integer 赋的值 在这个缓存值的范围内就直接会从缓存返回一个相同的引用,所以无论怎样比较都是相同的,而当超过这个范围时,java 就会重新 new 一个对象,因此两者比较是不相同的。

每天学习一个面试题

基本类型没有缺失值,而引用类型是有缺失值的,其值为 null。

基本类型通常比包装类型更节省时间与空间。

包装类型使用的时机:

a. 作为集合中的元素、键、值;

b. 在参数化类型中(即泛型);

c. 在进行反射方法的调用时。

最近发表
标签列表