数据类型的分为两类:
基本数据类型和引用数据类型
基本数据类型简单的分为四类八种
整数型(byte、short、int、long)
浮点型(float、double)
字符型(char)
布尔型(boolean)
整数默认为int类型、小数默认为double类型
引用数据类型分为
类(class)
接口(interface)
数组([])
基本数据类型的取值范围及在内存中所占的大小
关键字 |
数据类型 |
在内存中 所占的字节 |
取值范围 | 默认值 |
byte |
字节型 | 1个字节8个bit位 | -128~127 | 0 |
short |
短整型 | 2个字节16个bit位 | -2(15)~2(15)-1(
-32768-32767) |
0 |
int |
整型 | 4个字节32个bit为 | -2(31)~2(31)-1(
-2147483648-2147483647) |
0 |
long |
长整型 | 8个字节64个bit位 | -2(63)~2(63)-1(
- 9223372036854775808- 9223372036854775807) |
0 |
float |
单精度浮点型 | 4个字节32个bit位 | 1.4013E-45~3.4028E+38 | 0.0f |
double |
双精度浮点型 | 8个字节64个bit位 | 4.9E-324~1.7977E+308 | 0.0 |
char |
字符型 | 2个字节16个bit位 | 0~2(16)-1(0-65535) |
“u0000” |
boolean |
布尔型 | 没有准确的定义 | true,false |
false |
boolean 类型适于逻辑运算,一般用于程序流程控制
boolean类型数据只允许取值true或者false,不可以0或者非0的整数替代true和false char型数据用来表示通常意义上"字符"
字符常量为用单引号括起来的单个字符, 例如:char c = 1;char ch = '中';
java语言的整型常量默认为int型,声明long型常量可以后加'l'或'L',
声明为float类型可以在后边加'f'或'F'
类型的转换:
容量小的类型自动转换为容量大的数据类型;数据类型按容量大小排序为:
byte,short,char->int->long->float->double
自动类型转换
在byte、short、char参与运算的时候会自动提升为int,相当于将一个占空间较小的值放入了一个较大的空间。
byte b = 3;
int i = 4;
i = i+ b;//b会自动提升为int类型进行运算。
强制类型转换
可以将一个占空间较大的值使用(类型)的形式强制放入一个较小的空间,有可能损失精度。
byte b = 3;
b = b + 4;//报错
b = (byte)(b+4);//强制类型转换,强制将(b+4)的结果转换为byte类型,再赋值给b。
字符串转换
任何值和字符串相加都会得到字符串。
int i = 1;
System.out.println("i的值为" + i);
总结:在基本的数据类型中大容量的往小容量的类型里装的时候必须加强制转换符
byte,short,char在进行运算的时候首先转换成int在进行计算
byte b1=3,b2=4,b;
b=b1+b2; //编译会报错,b1,b2为变量java虚拟机会以int类型存储
b=3+4; //3、4为常量java虚拟机会判断是否超过了数据类型的取值范围