java 数据类型有哪些?
<1> 脑壳里面立刻出现“四类八种”(要做到就像小时候背诗,死记硬背就完了!例子不用背嗷)
1. int 整型 例如:1, 2, 3, 34, 345, 1225............
2. float 浮点型 例如: 不精确的数.............
3. long 整型 例如: 2341566234578907896.......
4. double 浮点型 例如: 不精确的数...............
5. boolean 布尔类型 例如: true/false, 是/否, 0/1.............
6. char 字符型 例如:‘a’, 'A', 's'........................
7. short 整型 例如:32765, 32455................
8. byte 整型 例如:123, 100, 24, 3...............
<2> 排序: byte<char(short)<int<float<long<double (背!!!)
原因: char 16位Unicode字符 范围(0 ~ 65535);
byte 二进制表示一个字节8位 -128 ~127(正负三位数);
short 二进制表示俩个字节16位 -2^15 ~ 2^15-1 (-32768~32767 正负5位数);
int 二进制表示四个字节32位 -2^31 ~ 2^31-1
(-2,147,483,648~2,147,483,647 正负10位数);
long 二进制表示八个字节64 位 -2^63 ~ 2^63-1
(-9,233,372,036,854,775,808~9,223,372,036,854,775,807 正负19位数);
float (单精度)32位(不表示精确的数,默认值:0.0f);
double (双精度)64位(不表示精确的数,默认值:0.0d);
boolean 布尔类型 一般判断是/否;
<3>单精度浮点数和双精度浮点数的区别:(float,double 浮点型的疑问解决,爽!!!)
1、所占的内存不同
单精度浮点数占用4个字节(32位)存储空间来存储一个浮点数,包括符号位1位,阶码8位,尾数23位,而双精度浮点数使用 8个字节(64位)存储空间来存储一个浮点数,包括符号位1位,阶码11位,尾数52位。
2、所存的数值范围不同
单精度浮点数的数值范围为-3.4E38~3.4E38,而双精度浮点数可以表示的数字的绝对值范围大约是:-2.23E308 ~ 1.79E308。E表示10的多少次方,如3.4E38指的是3.4乘以10的38次方。
3、十进制下的位数不同
单精度浮点数最多有7位十进制有效数字,如果某个数的有效数字位数超过7位,当把它定义为单精度变量时,超出的部分会自动四舍五入。
双精度浮点数可以表示十进制的15或16位有效数字,超出的部分也会自动四舍五入。