Java
是一种强类型语言,这就意味着必须为每个变量声明一种类型。在Java
中总共有8
种基本类型,其中有4
种整型、2
种浮点类型、1
种字符类型和1
种表示真假值的布尔(boolean
)类型。
一、整型(4种)
整型用于表示没有小数部分的数值,允许是负数。
四种整型:
-
int (
4
字节、-2,147,483,4648 ~ 2,147,483,647
) -
short (
2字节
、-32,768 ~ -32,767
) -
long (
8
字节、-9,223,372,036,854,775,808 ~ 9,223,373,036,854,775,807
) -
byte (
1
字节、-128 ~ 127
)
通常情况下,int
类型最常用,最大值差不多为21
亿。如果数值超过了这个值,最好是使用long
类型。而short
和byte
类型主要是用于特定的应用场合,如:文件处理或存储空间紧张时存储的大数组。
long
类型数值后有一个后缀L
或l
(小写的L
),建议写成大写的L
,小写的L
容易与数字1
混淆。
众所周知,Java是跨平台的语言,当一个软件从一个平台移植到另一个平台时,或者在一个平台的不同操作系统之中进行移植,会给开发人员带来各种各样的问题。
例如,使用C
或C++
语言开发的软件,在32
位处理器上运行时,long
类型为四个字节,但是在64
位处理器上时,却为8
字节。这样就会造成在64
位处理器上运行良好的程序,在32
位处理器上运行时会发生整数溢出的问题。
由于有这些差异的存在,导致跨平台开发程序异常困难,但是对于Java
来说,这些问题则不复存在。在Java
中,所有的数值类型所占据的字节数与平台无关。
二、浮点型(2种)
浮点类型用于表示有小数部分的数值。
两种浮点类型:
-
float (
4
字节、大约± 3.402,823,47E+38F
,有效位数为6 ~ 7
位) -
double (
8字节
、大约± 1.797,693,134,862,315,70E+308
,有效位数为15
位)
double
(双精度数值)的数值精度是float
类型的两倍。平时多使用double
类型。float
类型的数值有一个后缀F
或f
,没有后缀F
的浮点数值总是默认为是double
类型,或者浮点数值后有D
或d
的也是double
类型的浮点数值。
用于表示溢出和出错情况时的三个特殊的浮点数值:
- 正无穷大(一个正整数除以
0
时的结果) - 负无穷大
- NaN(计算
0/0
或负数的开平方根的结果)
注意: 浮点数值不适用进行无法接收有误差的金融计算。例如,10.0 - 9.1
的结果不是0.9
,而是0.9000000000000004
,这种有误差的原因是浮点数值采用二进制系统表示,而二进制系统中无法精确地表示分数。如果希望没有误差,那么应该使用BigDecimal
类。
三、字符类型(1种)
字符类型原本是用来表示单个字符,现在也可用来描述Unicode
字符。
一种字符类型:
- char
char
类型的字面量值要用单引号括起来。例如:'A'
是编码值为65
的字符常量;而"A"
是字符串A
。char
类型的值也可以表示为十六进制,范围从\u0000
到\uFFFF
。
四、布尔类型(1种)
用来判定逻辑条件,值只有两个,分别是:true和false。
一种布尔类型:
- boolean
需要注意的是: 在Java中,整型值和布尔值之间不能进行相互转换。在C++
中,数值0
相当于布尔值的false
,非0
值相当于布尔值的true
。
网友评论