说一说自动装箱与自动拆箱
自动装箱和拆箱的作用
标准回答
Java语言是面向对象的语言,其设计理念是“一切皆对象”。但8种基本数据类型却不具备对象的特性。为了解决这个问题,Java为每个基本数据类型都定义了一个对应的引用类型,这就是包装类。
自动装箱、自动拆箱是JDK1.5提供的功能,自动装箱是指把一个基本类型的数据直接赋值给对应的包装类型,自动拆箱是指把一个包装类型的对象直接赋值给对应的基本类型。
通过自动装箱、自动拆箱功能,可以大大简化基本类型变量和包装类对象之间的转换过程。比如,某个方法的参数类型为包装类型,调用时我们所持有的数据却是基本类型的值,则可以不做任何特殊的处理,直接将这个基本类型的值传入给方法。
加分回答
不同包装类不能直接进行比较,这包括:
整数、浮点类型的包装类,都继承于Number类型,而Number类型分别定义了将数字转换为byte、short、int、long、float、double的方法。所以,可以将Integer、Double先转为转换为相同的基本数据类型(如double),然后使用==进行比较。
不同包装类比较的示例代码:
Integer i = 100; Double d = 100.00; System.out.println(i.doubleValue() == d.doubleValue()); // true
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
得分点
自动装箱和拆箱的作用
参考答案
标准回答
Java语言是面向对象的语言,其设计理念是“一切皆对象”。但8种基本数据类型却不具备对象的特性。为了解决这个问题,Java为每个基本数据类型都定义了一个对应的引用类型,这就是包装类。
自动装箱、自动拆箱是JDK1.5提供的功能,自动装箱是指把一个基本类型的数据直接赋值给对应的包装类型,自动拆箱是指把一个包装类型的对象直接赋值给对应的基本类型。
通过自动装箱、自动拆箱功能,可以大大简化基本类型变量和包装类对象之间的转换过程。比如,某个方法的参数类型为包装类型,调用时我们所持有的数据却是基本类型的值,则可以不做任何特殊的处理,直接将这个基本类型的值传入给方法。
加分回答
不同包装类不能直接进行比较,这包括:
整数、浮点类型的包装类,都继承于Number类型,而Number类型分别定义了将数字转换为byte、short、int、long、float、double的方法。所以,可以将Integer、Double先转为转换为相同的基本数据类型(如double),然后使用==进行比较。
延伸阅读
不同包装类比较的示例代码: