计算机常见的数据存储方式大致分为两种,我把它叫做临时存储和非临时存储。临时存储通常指的是内存(内存条),最明显的特点是断电后数据消失;非临时存储通常指的是windows文件系统(磁盘/硬盘/软盘/U盘等),可以到处迁移数据,无关断电与否。
以windows文件系统为例,Java源程序是以.java结尾的文件,编译后生成.class结尾的文件,它们都得进行非临时存放。而真正运行的时候,是由启动后运行在内存中的Java虚拟机进行文件访问操作的。那么,在这个过程中产生的数据几乎都是临时数据,如果这些数据很重要,希望得到保存,就牵扯到Java关于数据序列化或持久化的处理。
对于Java源程序开发人员而言,就必须考虑在程序运行期间,内存中的这些个临时数据该如何操作。像其它编程语言一样,Java也提供了关于程序运行期间产生的数据的类型定义。
Java是强类型语言,对于数据有严格的定义,通常分为两大类:原生数据类型(基本数据类型)和引用类型。
1.Java的原生数据类型有8种,主要以数据表达范围区分,其中也有特殊的数据类型。
字节类型,byte,表示范围在-128~127的整数。(百)
短整型,short,表示范围在-32768~32767的整数。(三万)
整型,int,表示范围在-2147483648~2147483647的整数。(二十亿)
长整型,long,表示范围在-9223372036854775808~9223372036854775807的整数。(天文数字范围)
单精度浮点型,float,表示范围在-3.4E38(-3.4x10的38次方) ~ 3.4E38(3.4x10的38次方)的小数(天文数字范围),精度在小数点后7~8位左右。
双精度浮点型,double,表示范围在-1.7E308(-1.7x10的308次方) ~ 1.7E308(1.7x10的308次方)的小数(天文数字范围),精度在小数点后15~16位左右。
字符型,char,表示范围在0~65536的整数;char类型比较特殊,它可以表示单个的英文字母或者中文汉字等字符,这些字符都可以转换成整数,在表示这些单个字符的时候,都需要使用单引号包含;比如,字符'a'对应的整数是97;字符'我'对应的整数是25105。
布尔类型,boolean,表示真或假的含义,只有两个取值true或false。
在这里,我们还是要对Java的原生数据类型进行一些简单的总结。①Java的原生数据类型表示的数据有整数、小数、字符、布尔值;②Java的原生数据类型可分为有符号整数、有符号小数、无符号整数以及特殊的布尔值;③Java的原生数据类型表示数据范围大的类型包含了表示数据范围小的类型的范围。
2.引用类型
Java中最早遇到的引用类型就是数组的类型。原生数据类型表示的都是单一的数据,那么,引用类型表示的都是复合数据。这些复合数据要么是只包含相同类型的数据(数组),要么是既包含相同类型的数据又包含不同类型的数据(对象)。关于引用类型的介绍,还是留到数组和对象的章节去讨论。