Java 数据类型
Java数据类型分为二种,基本数据类型和引用类型
基本数据类型
基本数据类型由分为,整数型、浮点型、字符型和布尔型
整数类型
整数类型又分为四种,byte、short 、int 、long
| 类型 | 字节数 | 表述范围 | 包装类 (引用类型) |
|---|---|---|---|
| byte | 1 | -127-128 | Byte |
| short | 2 | -32768-32767 | Short |
| int | 4 | -2,147,483,648-2,147,483,647 | Integer |
| long | 8 | -9,223,372,036,854,775,808-9,223,372,036,854,775,807 | Long |
浮点类型
浮点类型分为两种,float、double
| 类型 | 字节数 | 表述范围 | 包装类(引用类型) |
|---|---|---|---|
| float | 4 | IEEE 754 | Float |
| double | 8 | IEEE 754 | Double |
单精度和双精度?
单精度浮点数在计算机存储器中占用4个字节(32 bits),利用“浮点”(浮动小数点)的方法,可以表示一个范围很大的数值。
比起单精度浮点数,双精度浮点数(double)使用 64 位(8字节) 来存储一个浮点数。
为什么不能用浮点型表示金额
由于计算机中保存的小数其实是十进制的小数的近似值,并不是准确值,所以,千万不要在代码中使用浮点数来表示金额等重要的指标。
建议使用BigDecimal或者Long(单位为分)来表示金额。
布尔型
| 类型 | 字节数 | 表述范围 | 包装类(引用类型) |
|---|---|---|---|
| boolen | 1 | false/true | Boolen |
如何正确定义接口的返回值(boolean/Boolean)类型及命名(success/isSuccess)
在定义一个布尔类型的变量,尤其是一个给外部提供的接口返回值时,要使用success来命名,阿里巴巴Java开发手册建议使用封装类来定义POJO和RPC返回值中的变量。但是这不意味着可以随意的使用null,我们还是要尽量避免出现对null的处理的
字符型
| 类型 | 字节数 | 表述范围 | 包装类(引用类型) |
|---|---|---|---|
| char | 2 | 16 位 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