Java基础:二、数据类型(3)

  • 2020 年 3 月 17 日
  • 筆記

数据类型

数据类型包含两种:基本数据类型和引用数据类型

基本类型

Java中一般通过new创建对象并将对象存储在“堆”里,并通过变量引用保存对象的地址,而对于基本类型,需要特殊对待,基本类型不用new来创建变量,而是创建一个并非是引用的“自动”变量。这个变量直接存储的是“值”,并置于堆栈中,因此更加高效

Java回确定每种基本类型所占存储空间的大小,并且这个大小并不会随着机器硬件架构的变化而变化。这也成为了Java比其他大多数语言编写的程序更具移植性的原因之一

1个字节占8bits,所以

表示形式

整数类型四种表示形式:十进制 、八进制 以0开头、二进制 0b或0B开头、十六进制 0x或0X开头

浮点类型两种表示形式:十进制数形式、科学记数法形式

其他

浮点数并非准确的,千万不能用于比较

float单精度类型,尾数精确到7为,double双精度类型,尾数精确到14位

float和double不适合在不容许舍入误差的金融计算领域,如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal

folat类型的数值后面要有一个后缀F或f,没有的默认为double类型,也可以在数值后添加后缀D或者d,明确double类型

高精度数字

Java提供了两个用于高精度计算的类:BigInteger和BigDecimal。这两个类大体上属于“包装器类”的范畴,但两者都没有对应的基本类型

BigInteger可以准确的表示任何大小的整数值,而且不会丢失任何消息 BigDecimal支持任何精度的定点数,例如,可以用它进行精确的货币计算