重学Java-基础篇-基础数据类型

221 阅读3分钟

Java 数据类型

Java数据类型分为二种,基本数据类型和引用类型

基本数据类型

基本数据类型由分为,整数型、浮点型、字符型和布尔型

整数类型

整数类型又分为四种,byte、short 、int 、long

类型字节数表述范围包装类 (引用类型)
byte1-127-128Byte
short2-32768-32767Short
int4-2,147,483,648-2,147,483,647Integer
long8-9,223,372,036,854,775,808-9,223,372,036,854,775,807Long

浮点类型

浮点类型分为两种,float、double

类型字节数表述范围包装类(引用类型)
float4IEEE 754Float
double8IEEE 754Double
单精度和双精度?

单精度浮点数在计算机存储器中占用4个字节(32 bits),利用“浮点”(浮动小数点)的方法,可以表示一个范围很大的数值。

比起单精度浮点数,双精度浮点数(double)使用 64 位(8字节) 来存储一个浮点数。

为什么不能用浮点型表示金额

由于计算机中保存的小数其实是十进制的小数的近似值,并不是准确值,所以,千万不要在代码中使用浮点数来表示金额等重要的指标。

建议使用BigDecimal或者Long(单位为分)来表示金额。

布尔型

类型字节数表述范围包装类(引用类型)
boolen1false/trueBoolen
如何正确定义接口的返回值(boolean/Boolean)类型及命名(success/isSuccess)

在定义一个布尔类型的变量,尤其是一个给外部提供的接口返回值时,要使用success来命名,阿里巴巴Java开发手册建议使用封装类来定义POJO和RPC返回值中的变量。但是这不意味着可以随意的使用null,我们还是要尽量避免出现对null的处理的

hollischuang.gitee.io/tobetopjava…

字符型

类型字节数表述范围包装类(引用类型)
char216 位 Unicode 字符Character

拆箱与装箱

基本数据类型与包装类之间的转换,称为拆箱或装箱。包装对象的数值比较,不能简单的使用 ==,虽然 -128 到 127 之间的数字可以,但是这个范围之外还是需要使用 equals 比较。

Java整形缓存机制 www.hollischuang.com/archives/11…

缓存池

著作权归pdai.tech所有。 链接:pdai.tech/md/java/bas…

new Integer(123) 与 Integer.valueOf(123) 的区别在于:

  • new Integer(123) 每次都会新建一个对象
  • Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对象的引用。 valueOf() 方法的实现比较简单,就是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容。 编译器会在缓冲池范围内的基本类型自动装箱过程调用 valueOf() 方法,因此多个 Integer 实例使用自动装箱来创建并且值相同,那么就会引用相同的对象。

著作权归pdai.tech所有。 链接:pdai.tech/md/java/bas…

基本类型对应的缓冲池如下:

  • boolean values true and false
  • all byte values
  • short values between -128 and 127
  • int values between -128 and 127
  • char in the range \u0000 to \u007F