鱼C论坛

 找回密码
 立即注册
查看: 3203|回复: 2

[已解决]基本数据类型和包装类

[复制链接]
发表于 2017-12-13 21:01:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求大佬解释。

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


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

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

最佳答案
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(支持任何精度的定点数)。它们大体上属于包装器类型,但没有对应的基本类型。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-29 13:58:30 | 显示全部楼层
包装类其实就是将基本数据类型和String 类型转换的桥梁
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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(支持任何精度的定点数)。它们大体上属于包装器类型,但没有对应的基本类型。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-18 08:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表