本文旨在为新手讲解Java基本数据类型的用法及注意事项,对于久经沙场的前辈请忽略此文。
Java同C、C#、C++一样是一种强类型的语言,即每个变量在使用之前,都必须为变量声明一个数据类型;在Java中共有8中基本数据类型,在本文稍后将一一作出讲解。
说明:在Java中,当需要表示超出基本数据类型所能够表示的精度的数值的时候,可以使用Java中已经封装好的算术包;但需要注意的是,该算术包并非是一个数据类型,而是一个java对象。
本文目录:
整型[byte | short | int | long]
浮点型[float | double]
字符型[char]
布尔型[boolean]
整型
整型用于表示没有小数部分的数值,即由正整数、负整数和0组成;在Java中、有四种整型。
1) byte类型 1字节 -128~127
2) short类型 2字节 -32768~32767
3) int类型 4字节 -2147483648~2147483647
4) long类型 8字节 -9223372036854775808~9223372036854775807
由此可知,在java中数据类型的长度固定,因此可以保证在各个平台之上运行结果一致[跨平台]。
通常,int类型最常用;当表示的数值特别大的时候,就需要使用long类型;byte和short类型,在
特定场合(对数值结果明确的可预知)的时候使用(如:需要限制占用存储空间的大数组);当使
用long类型的时候,需要在数值后加L来表示该数值为long类型。
2. 浮点型
浮点类型用于表示有小数部分的数值,在Java中,有两种浮点型。
1) float类型 4字节 有效位数为6-7位
2) double类型 8字节 有效位数为15位
由以上可以看出,double数值精度为float的两倍,因此double也称为双精度数值;通常、绝大部
分程序都应使用double类型,因为、很多情况下float没法满足需求[例如:表示员工的年薪,此时
可能高层的薪水是float所无法表示的]
注意:在Java中,表示float数据类型需要在数值后加f以表示该数值为单精度数值;否则Java默认
为双精度数值。在Java中所有的运算都遵循IEEE 754规范。
表示溢出和出错的三个特殊数值:Double.POSITIVE_INFINIFY(正无穷)、NaN(不是数一个数
字)、Double.NEGATIVE_INFINIFY(负无穷) [正整数除以0的时候,结果就是无穷大,而计算
0/0或者负数的平方根的时候,结果就是NaN]
在程序中,当需要判断一个数值是否是NaN的时候,不能使用if(x == Double.NaN)来判断,因为
在Java中,所有的非数值类型(NaN)都被认为是不相同的;必须使用if(Double.isNaN(x))来判断
注意:浮点类型不能被用于不允许出现舍入误差的运算中(如银行数值的计算),必须使用
BigDecimal类来进行计算。
3. 字符型
char类型表示单个字符;通常用于表示常量;在Java中,char类型使用UTF-16编码描述一个编码
单元。通常、强烈不建议在程序中使用char类型,除非需要对UTF-16编码进行操作。
4. 布尔型
Boolean类型只有两个值(true 和 false),用来判定逻辑条件。
注意:整型值和布尔值之间不能进行转换。即在Java程序中不可能出现类似if(2){}、while(1){}这样
的语句,这样的语句在编译的时候就会报错(报错具体内容为:不兼容的数据类型)