1.Java基本类型
Java语言提供了八种基本类型。一种布尔类型,一种字符类型(也是一种整型),六种数字类型(四个整数型,两个浮点型)
1、布尔:boolean ,初始值为false
1、布尔:boolean ,初始值为false
2、字符:char ,初始值为空,即''(或'\u0000'),java采用unicode,2个字节来表示一个字符(C++采用ascii,1个字节表示一个字符)
3、整数:包括int,short,byte,long ,初始值为0
4、浮点型:float,double ,初始值为0.0f和0.0d
PS:float f=1.3是错误的,Java中不加后缀字母'f'或'F'的浮点类型是double类型。(在C++中虽然默认浮点类型是double,但是允许这样赋值)
float f=1.3f,float f=1.3F,float f=(float)1.3,这三种赋值是正确的。
基本类型 | 所占空间(bit) | 取值范围 | 包装类 |
boolean | 1 | false/true | Boolean |
char | 16 | '\u0000' ~ '\uffff' | Character |
byte | 8 | -128 ~ 127 | Byte |
short | 16 | -2^15 ~ 2^15-1 | Short |
int | 32 | -2^31 ~ 2^31-1 | Integer |
long | 64 | -2^63 ~ 2^63-1 | Long |
float | 32 | -3.40292347E+38 ~ +3.40292347E+38 | Float |
double | 64 | -1.79769313486231570E+308 ~ +1.79769313486231570E+308 | Double |
2.基本类型转换
Java基本类型可以相互转换,但是boolean除外
隐式转换(从低级到高级),又叫扩展转换,不会丢失信息,不需要显式进行转换。
强制转换(从高级到低级),又叫窄化转换,可能丢失信息,需要显式进行转换。
基本类型 | 可隐式转换成的类型(从低级到高级排列) |
char | int,long,float,double |
byte | short,int,long,float,double |
short | int,long,float,double |
int | long,float,double |
long | double |
float | double |
强制转换可以将任何基本类型转换成其他基本类型,但是boolean除外,它不能转换。
/*
隐式转换和强制转换举例
*/
char ch=97;//代表ch='a'
int i=ch;//隐式转换
short sh=(int)i;//强制转换