Quincy 发表于 2017-12-13 21:01:53

基本数据类型和包装类

求大佬解释。

Java中一切皆是对象,那么基本数据类型算是对象吗?
int a=10;
                System.out.println(a instanceof Object);

这样写程序会报错,是不是说明Java中的基本数据类型不是对象?

包装类的存在是不是也说明基本数据类型不是对象,需要包装类的存在将基本数据类型变为对象呢?

{:5_94:}

凡凡殇清 发表于 2017-12-29 13:58:30

包装类其实就是将基本数据类型和String 类型转换的桥梁

一个坏人 发表于 2018-1-3 14:37:27

new创建对象存放在堆上,但创建简单、较小的变量没有必要用new。因此Java采用创建并非是引用的自动变量来存储这类小而简单的变量,并将它们放在堆栈里,以提高效率。这类自动变量就是Java的基本类型。
Java中一切皆对象,但基本类型却不是对象,为了解决这个问题,Java让每个基本类型都对应了一个包装器类型。

  包装器类型将基本类型包装起来,添加了属性和方法。Java SE5自动包装功能可以将基本类型转换为包装器类型,当然也可以反向转换。

  基本类型和它们的包装器类型有哪些区别呢?

  a)包含内容不同。基本类型只是表示一个数据,包装器类型包括数据和方法。

  b)声明方式不同。包装器类型需要使用new来声明,而基本类型不需要。

  c)未进行初始化时,默认初始值不同。如int作为类成员变量时,默认初始值为0,而包装器类型都为null。

  d)存储位置不同。基本类型存储在堆栈中,而包装器类型的引用存储在堆栈中,引用引用的对象存储在堆中。

  e)使用方式不同。基本类型可以直接赋值,不能放进List,Map等集合类中,而包装器类型可以。

  Java还提供了两个用于高精度计算的类,BigInteger(支持任意精读的整数)和BigDecimal(支持任何精度的定点数)。它们大体上属于包装器类型,但没有对应的基本类型。
页: [1]
查看完整版本: 基本数据类型和包装类