java中有8种基本类型,boolean、char、byte、short、int、long、float、double,类型分为:布尔型、数值型、字符型,其中,数值型:整型、浮点型。
布尔型(boolean)、整型(byte、short、int、long)、浮点型(float、double)、字符型(char)。
每种基本都对应有复合包装类,javase5的自动包装功能将自动地将基本类型转换为包装器类型,如:
Character ch = 'c';
基本类型 | 大小 | 最小值 | 最大值 | 默认值 | 包装类型 |
boolean | - | - | - | false | Boolean |
char | 16-bit | Unicode 0 | Unicode 2^16 -1 | '\u0000'(null) | Character |
byte | 8bits | -128 | +127 | (byte)0 | Byte |
short | 16bits | -2^15 | +2^15 -1 | (short)0 | Short |
int | 32bits | -2^31 | +2^31 -1 | 0 | Integer |
long | 64bits | -2^63 | +2^63 -1 | 0L | Long |
float | 32bits | IEEE754 | IEEE754 | 0.0f | Float |
double | 64bits | IEEE754 | IEEE754 | 0.0d | Double |
一、整型
整型数值的最高比特位是符号位,0表示正数,1表示负数,其余数位表示数值。
二、浮点型
浮点型常量默认是double型。
三、字符型
char类型表示Unicode编码方案中的字符,范围('\u0000' - '\uFFFF'),Unicode可包含65535个字符,ASCII/ANSI只包含255个字符,实际上只是Unicode的一个子集。Unicode字符通常用十六进制编码方案表示,范围('\u0000' - '\uFFFF'),('\u0000' - '\u00FF')表示ASCII/ANSI字符。\u表示这是一个Unicode值。
字符型实际上是一个16位无符号整数,也可以用整型赋值,但整数范围要在0~65535之间。
char ch = 65;
System.out.println(ch);
结果:A
char ch = 'A';
int i = ch;
System.out.println(i);
结果:65
当ch = 'a'时,i的值为:97
四、简单数据类型的转换
整型、浮点型、字符型,被视为简单数据类型,简单数据类型从低级到高级为:
低级 -> 高级
( char, byte, short ) -> int -> long -> float -> double
其中,char、byte、short三种类型是平级的,
1、在简单数据类型中,从低级类型向高级类型转换是自动转换的,平级之间是不能自动转换的,但可以强制转换。
int i = 12;
long l = i;
System.out.println(l);
结果:12
2、从高级类型向低级类型转换是要强制转换的,但高级类型的范围比低级类型的范围大,可能导致出现溢出或精度的下降。
3、字符类型和字符串类型之间
char ch = 'H';
String s = ch + "ello";
System.out.println(s);
结果:Hello