一. Java数据类型概览
二. Java中八大基本数据类型
类型名称 | 类型定义 | 取值范围 |
---|---|---|
boolean | 布尔值,作二元判断 | true, false |
byte | 8位有符号整数 | -128 ~ 127 |
short | 16位有符号整数 | -32768 ~ 32767 |
int | 32位有符号整数 | -2147483648(-231)~ 2147483647(231-1) |
long | 64位有符号整数 | -263~ (263-1) |
float | 32位浮点数 | 1.4E-45 ~ 3.4028235E38 |
double | 64位浮点数 | 4.9E-324 ~ 1.7976931348623157E308 |
char | 16位Unicode字符 | 0 ~ 65535 |
注意:
(1)Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的“E+数字”表示E之前的数字要乘以10的多少倍。
比如3.14E3就是3.14×1000=3140,3.14E-3就是3.14/1000=0.00314。
(2)Java语言中,默认的整数类型是int类型,声明long类型的时候,后面必须要加个l(字母L的小写)或者L,建议使用大写L,防止和数字1混淆,如:30L;
(3)Java语言中,默认的浮点数类型是double,声明float类型的时候,后面必须添加字母f或者F,如3.14F,3.14f;
(4)Java语言中,char类型为16位Unicode字符,Unicode字符中的取值不存在负数范围,所以它的取值范围为 0 ~ 65535,—— 有点类似 “无符号数”;
三. Java中八大基本数据类型的转换
(1)boolean不可以转换为其他的数据类型;
(2)整数型,浮点类型,字符型是可以相互转换的,转换时遵守下面的原则:
a) 容量小的类型自动转换为大的类型,数据类型按容量大小排序为:
byte, short, char < int < long <float < double
b) byte, short, char 三种类型间不会相互转换,他们三者在计算时,首先会转换为int类型;
c) 容量大的类型在转换为小的类型的时候,必须加上强制转换符,此时可能造成精度降低或者溢出问题;
d) 有多种数据类型混合计算的时候,系统首先自动转换为容量最大的那个类型再来继续计算;
e) 默认的浮点数类型是double,如:1.2; 默认的整数类型是int类型,如:1;
四. 关于字符串问题
记得我上学那会,还把String类型当做一个基本数据类型,现在想想真是可笑! String是java.lang.String包下的一个类,也就是引用类型中的类类型(说白了它就是一个类),
在Java中java.lang.* 下的所有包都是自动引入的,所以同学们可要注意了!