JAVAx数据类型
Java基本类型共有八种,基本类型可以分为三类:
类型分类 | 类型 |
---|---|
字符类型 | char |
布尔类型 | boolean |
数值类型 | byte、short、int、long、float、double |
数值类型又可以分为
类型分类 | 类型 |
---|---|
整数类型 | byte、short、int、long |
浮点数类型 | float、double |
JAVA中的数值类型 不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。
实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。
Java决定了每种简单类型的大小。这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是Java程序具有很强移植能力的原因之一。下表列出了Java中定义的简单类型、占用二进制位数及对应的封装器类。:
类型 | 位数 | 取值范围 | 包装类 | 默认值 |
---|---|---|---|---|
byte | 8位 | 最大存储量是255,数据范围是-128~127之间 | Byte | (byte)0 |
short | 16位 | 最大存储量是65536,数据范围是-32768~32767之间 | Short | (short)0 |
int | 32位 | 最大存储量是232-1,数据范围是-231~ 231-1 | Integer | 0 |
long | 64位 | 最大存储量是264-1,数据范围是-263~263-1 | Long | 0L |
float | 32位 | 数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F | Float | 0.0f |
double | 64位 | 数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加 | Double | 0.0d |
boolean | 8位(内存对齐) | 只有true和false两个取值 | Boolean | false |
char | 16位 | 存储Unicode码,用单引号赋值 | Charter | \u0000(null) |
自动装箱、拆箱
装箱就是将基本数据类型转换为封装器类型;拆箱就是将封装器类型转换为基本数据类型。
总结:
1、需要知道什么时候会引发装箱和拆箱
2、装箱操作会创建对象,频繁的装箱操作会消耗许多内存,影响性能,所以可以避免装箱的时候应该尽量避免。
3、equals(Object o) 因为原equals方法中的参数类型是封装类型,所传入的参数类型(a)是原始数据类型,所以会自动对其装箱,反之,会对其进行拆箱
4、当两种不同类型用比较时,包装器类的需要拆箱, 当同种类型用比较时,会自动拆箱或者装箱
类型转换
数值类级别从低到高为:byte,char,short(这三个平级)–>int–>float–>long–>double
自动类型转换:从低级别到高级别,系统自动转的;
强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;