1.
基本类型共有八种
整型 byte short int long
浮点型 float double
字符型 char
布尔型 boolean
2. 引用数据类型,除了基本类型以外的所有类型都是引用数据类型
主要包括类,接口,数组等
如下图所示
3. 基本类型转换
自动转换,将基本数据类型按照可表示数据的范围大小排序,
由“小范围”到“大范围”分别为 (byte,short,char)--int--long--float—double
当一个较“小范围”数据与一个较“大范围”的数据一起运算时,系统将自动将“小”数据转换成“大”数据,再进行运算。
例如
short b=8;
char c=’W’;
int i=c;(这时会将’W’ 对应的ASCII码值赋值给i)
4. 基本数据类型的存储
基本数据类型存储在栈中,并且有共享机制。
对于同样的数字如int a = 99; int b = 99;99这个数字在栈中只有一份数据。
由于基本数据类型放在栈中,所以生命周期较短,随着代码的出栈和入栈而产生或者消亡,分配和释放速度非常快。
整型 byte short int long
浮点型 float double
字符型 char
布尔型 boolean
2. 引用数据类型,除了基本类型以外的所有类型都是引用数据类型
主要包括类,接口,数组等
如下图所示
3. 基本类型转换
自动转换,将基本数据类型按照可表示数据的范围大小排序,
由“小范围”到“大范围”分别为 (byte,short,char)--int--long--float—double
当一个较“小范围”数据与一个较“大范围”的数据一起运算时,系统将自动将“小”数据转换成“大”数据,再进行运算。
例如
short b=8;
int i=b;(将short数据向int赋值时,完成了自动转换)
short a = 8;
short a = a-2;//编译不过
short a -=2; //编译通过 等价于 short a = (short)(a-2);
注意:Java的复合赋值运算符,如a1 op= a2 (op为+-*/ << >>)等,Java编译器会将计算结果自动强制转换为左侧的数据类型,
即其等价于 a1 =(a1的数据类型)( a1 op a2)
char c=’W’;
int i=c;(这时会将’W’ 对应的ASCII码值赋值给i)
4. 基本数据类型的存储
基本数据类型存储在栈中,并且有共享机制。
对于同样的数字如int a = 99; int b = 99;99这个数字在栈中只有一份数据。
由于基本数据类型放在栈中,所以生命周期较短,随着代码的出栈和入栈而产生或者消亡,分配和释放速度非常快。