Java中有8中基本数据类型,分为三大类
字符型:char(2字节)
布尔型:boolean(1字节)
数值型: 整型:byte、short、int、long(1、2、4、8)
浮点型:float、double(4、8字节)
注意String是引用类型,不是基本数据类型。
整形的取值范围
基本数据类型的取值范围与其本身的字节数有关
1字节 = 8bit
byte:1字节,取值范围:-128(-27)到+127(27-1),初始化时,byte的默认值为0。
short:2字节,取值范围 -32,768 (-2^15)到32,767 (2^15-1) ,初始化时默认值为0。
int和short类推即可。
浮点数
浮点数分为单精度(float)和双精度(double)
在计算机中保存的小数其实是十进制小数的近似值,并不是准确值。所以不能用浮点数表示重要指标
基本数据类型优点
在Java中,当我们用new创建一个对象的时候,创建的对象是存在于堆中的,我们通过栈内存的引用来使用这些对象。所以,对象的使用比较消耗资源。但是Java提供了基本数据类型,基本数据类型不用new来创建,可直接定义,如:int a = 10; 而且,基本数据类型直接创建在栈中,所以我们操作基本数据类型的时候节省了很多资源。
包装类型
Java是一门面向对象的编程语言,但是Java提供的基本数据类型却不是面向对象的,为了避免在使用时的不方便,Java为每个基本数据类型提供了其对应的包装类。包装类均位于java.lang 包下。
基本数据类型 | 包装类 |
---|---|
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
自动拆装箱
在Java SE5之后,Java语言提供了自动拆装箱的功能。
自动拆箱:自动将包装类转化为对应的基本数据类型。
自动装箱:自动将基本数据类型转化为对应的包装类。
自动类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换从低级到高级。
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
-
不能对boolean类型进行类型转换。
-
不能把对象类型转换成不相关类的对象。
-
在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
-
转换过程中可能导致溢出或损失精度。
-
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。