java中的基本数据类型
- 数字型
- byte,short,int,long四种整型。
- float,double两种浮点型(小数)。
- char字符型。
- boolea布尔型。
数据类型 | byte | short | int | long | double | float | char | boolean |
---|---|---|---|---|---|---|---|---|
举例 | 122 | -278 | 24455 | 212119 | 1234.5 | 2224.45F | A | FALSE |
包装类 | Byte | Short | Integer | Long | Double | Float | Character | Boolean |
默认值 | 0 | 0 | 0 | 0L | 0,0d | o.0f | ‘\u0000’ | FALSE |
一.byte型
数据存储以“字节”(Byte)为单位的,一个字节只有8“位”。八位只能存储0和1。数字会转化为二进制形式。因为只占8位。因此取值范围为127~(-127)
byte b = 122;
二.short型
short型可以最大存储量是65536,也就是216-1,数据范围为-32768·32767之间也就是2^15^~-2^15^
。
short s=-278;
三.int型
int型数据占32位。最大存储容量为232 -1 。存储范围为-2^31^-1~2^31^-1
。
int i = 24455;
四.long型
long占64位置。最大存储容量为264 -1 。存储范围为-2^63^-1~2^63^-1
。
直接赋值long型须在数字末尾加L。
long l = 24455L;
五.double型
double表示双精度浮点数在机内占8个字节,用64位二进制描述。浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。
表示双精度的double在精确计算上误差也比较大。比如银行熊一般会使用建议使用bigdecimal
追求更高精度。
double d1 = 1234.5;
double d2 = 2654.0;
double d3 = 44.67;
六.float型
float表示单精度浮点数在机内占4个字节,用32位二进制描述。 表示单精度。
直接赋值float型须在数字末尾加f或者F
。
float f = 2224.45F;
七.char型
java采用unicode,2个字节来表示一个字符。一个数字或英文或汉字都是一个字符,只不过数字和英文时,存储的2个字节的第一个字节都为0,就是浪费了点空间。存汉字就占满了2个字节。
char sex = 男;
char a = A;
八.boolean型
boolea只能取两个值分别为true和false。
boolean gameStar = false;
数据类型的转换
- 自动转换
低转高由小数据类型转大数据类型时系统会自动转换.
常量值不超过该类型的数据范围都可以自动转换。
byte b1 = 12;
byte b2 = 11;
int i3;
i3= b1*b2;
在运算b1*b2时,b1和b2会自动转换为int型。
int i = 147;
byte b = 23;
i=b*i;
在运算i*b时,b会自动提升为int型。
- 强制转换
高转低强制显示的吧一个数据类型转换为另一种数据类型。
int i = 147;
byte b;
b=(byte) i;
System.out.println(b);
将i赋值给b,将int型赋值给byte型。高转低需要强制转换。输出b的结果为
但是显然147已经超出byte型的范围。因此高转低需要慎重。