数据类型
基本数据类型
前面提到,无论是变量还是常量,在声明时必须指明它能够存储信息的类型。不同的数据类型,在内存中分配的空间大小也不一样,也就是说,一定要指明常量或变量的数据类型。
在Java语言中,一共有8大基本数据类型,可分为4种类型:
- 整数类型,整数类型的变量或常量,主要用来存储整数;
- 浮点类型,浮点类型的变量或常量,主要用来存储小数;
- 字符类型,字符类型的变量或常量,主要用来存储单个字符;
- 逻辑类型/布尔类型,布尔类型的变量或常量,主要用来存储逻辑值true或false。
数据类型转换
当把一种数据类型变量的值赋予另一种数据类型变量时,或者不同类型的数据或数据变量混合在一起进行运算时,就需要对数据类型进行相应的转换。有两种转换方式:
第一种方式是自动类型转换。在对变量进行赋值时,如果是将低级数据类型的数据,赋给高级数据类型的变量,这时Java会自动完成从低级类型向高级类型的转换。在原始数据类型中,除了boolean类型外,其他数据均可参与算数运算。
第二种方式是强制类型转换。在对变量进行赋值时,如果是将高级数据类型的数据赋给低级数据类型的变量,这时Java不会自动完成类型的转换,而必须由程序员手工强制进行类型转换。
需要注意的是,运算中,不同类型的数据先转化为同一类型,然后进行运算;不能对布尔值进行转换;强制转换会出现内存溢出或者精度问题。
引用数据类型
引用数据类型和基本数据类型都可以用来创建变量,可以赋值和使用其值,本身都是一个地址。但是它们之间有所区别:
基本数据类型变量的值,就是地址对应的值。引用数据类型的值,还是一个地址,需要通过“二级跳”找到实例。
引用数据类型是Java的一种内部类型,是对所有自定义类型和数组引用的统称,并非特指某种类型。