Java中的基本类型,一共八种,大体上可分为三类,数值型,字符型,真假型。
数值中整数型为:byte,short,int,long。数值中小数型为:float,double。字符型为:char。真假型为:boolean。
8 中类型表示范围如下:
基础类型之间是可以自动转换的,但这个是有限度的转换。
- 范围小的数据可以转换为范围大的数据,例如 int 型可以转为long型。但是long型转为int,由于long超出int的表示范围,超出的数据将会丢失,导致结果出现不确定因素。
- 转换需要前后数据类型一致。比如int无法转换成char,也无法转换成boolean。
- 整形可以和浮点型一起运算,结果会转换为浮点型。
除了自动转换的条件下,有些情况会需要强制转换。
float
强制转换需要加上(),同样不同类型之间强制转换会出现精度丢失等问题。
Java中的基本数据类型都有对应的包装类。
数据类型int,double等不是对象,无法通过向上转型获取到Object提供的方法,包装类的目的是为了让基本的数据类型可以参与转型,泛型,反射等过程。
在基本数据类型和包装数据类型之间的转换,会进行一个装箱和拆箱的过程。
- 装箱是指将值类型转为引用类型,例如 long 转为 Long。
- 拆箱是指将引用类型转为值类型,例如 Long 转为 long。
在Java1.5版本之后,提供了自动拆装箱功能,也就不需要开发者再去手动新建对象。
Long c = 1L;
赋值
声明一个变量后,就在内存分配了一块位置。但是这个位置对应的内容是未知的,赋值的过程就是把这块位置的内容设为一个确定的值。
上面的表格中提到,每个基本类型都有对应的取值范围。基本类型的赋值很简单,将需要赋值的内容赋值给变量即可。
byte
需要注意一些点,比如在给long赋值时候,数值超过了int的表示范围,需要在常亮后面加大写或者小写的字母L,因为默认数值是int类型的。如
long
小数类型有float和double,double的范围更大,精度更高。
double
同样,float赋值需要加大写或小写的f,因为小数默认是double类型。
真假类型很简单,只有true或者false;
boolean
字符类型表示一个字符,可以是中文或者英文。占用内存两个字节,需要注意是引号为单引号,不能使用双引号。
char
此外,赋值时候,对数值也是可以进行各种运算。
int
变量也可以先声明,后赋值。但切记声明不复制是没有初始值的。所以没有“int a;” a的初始值就是0的这种说法。
不进行初始化的变量,是无法通过编译的。编译器会提示你变量未初始化的错误。