一切都是对象之必须由你创建所有对象(二)特例:基本类型

特例:基本类型
  在程序设计中经常用到一系列类型,它们需要特殊对待。可以把它们想像成“基本”类型。之所以特殊对待,是因为new将对象存储在“堆”里,故用new创建一个对象——特别是小的、简单的变量,往往不是很有效。因此,对于这些类型,Java采取与C和C++相同的方法。也就是说,不用new来创建变量,而是创建一个并非是引用的“自动”变量。这个变量直接存储“值”,并置于堆栈中,因此更加高效。
  Java要确定每种基本类型所占存储空间的大小。它们的大小并不像其他大多数语言那样随机器硬件架构的变化而变化。这种所占存储空间大小的不变性是Java程序比用其他大多数语言编写的程序更具可移植性的原因之一。

基本类型大小最小值最大值包装器类型
boolean——————Boolean
char16-bitUnicode oUnicode 216-1Character
byte8 bit-128+127Byte
short16 bit-215+215-1Short
int32 bit-231+231-1Integer
long64 bit-263+263-1Long
float32 bitIEEE754IEEE754Float
double64 bitIEEE754IEEE754Double
void——————Void

      所有数值类型都有正负号,所有不要去寻找无符号的数值类型。
  boolean类型所占存储空间的大小没有明确指定,仅定义为能够取字面值true或false。
  基本类型具有的包装器类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。例如:

		char r = 'x';
		character ch = new Character(c);

      也可以这样用:

		Charactre ch = new Character('x');

      JavaSE5的自动包装功能将自动地将基本类型转换为包装器类型:

		Character ch = 'x';

      并可以反向转换:

		char c = ch;

高精度数字
  Java提供了两个用于高精度计算的类:BigInter和BigDecimal。虽然它们大体上属于“包装器类”的范畴,但二者都没有对应的基本类型。
  不过,这两个类包含的方法,提供的操作与对基本类型所能执行的操作相似。也就是说,能作用于int或float的操作,也同样能作用于BigInteger或BigDecimal。只不过必须以方法调用方式取代运算符方式来实现。由于这么做复杂了许多,所以运算速度会比较慢。在这里,我们以速度换取了精度。
  BigInteger支持任意精度的整数。也就是说,在运算中,可以准确地表示任何大小的整数值,而不会丢失任何信息。
  BigDecimal支持任何精度的定点数,例如,可以用它进行精确地货币计算。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钴60

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值