Java数据类型浅析


Java是一种强类型语言,这就意味着必须为每个变量声明一种类型。在 Java中总共有 8种基本类型,其中有 4种整型、 2种浮点类型、 1种字符类型和 1种表示真假值的布尔( boolean)类型。

一、整型(4种)

整型用于表示没有小数部分的数值,允许是负数。

四种整型:

  • int4字节、-2,147,483,4648 ~ 2,147,483,647
  • short2字节-32,768 ~ -32,767
  • long8字节、-9,223,372,036,854,775,808 ~ 9,223,373,036,854,775,807
  • byte1字节、-128 ~ 127

通常情况下,int类型最常用,最大值差不多为21亿。如果数值超过了这个值,最好是使用long类型。而shortbyte类型主要是用于特定的应用场合,如:文件处理或存储空间紧张时存储的大数组。

long类型数值后有一个后缀Ll(小写的L),建议写成大写的L,小写的L容易与数字1混淆。

众所周知,Java是跨平台的语言,当一个软件从一个平台移植到另一个平台时,或者在一个平台的不同操作系统之中进行移植,会给开发人员带来各种各样的问题。

例如,使用CC++语言开发的软件,在32位处理器上运行时,long类型为四个字节,但是在64位处理器上时,却为8字节。这样就会造成在64位处理器上运行良好的程序,在32位处理器上运行时会发生整数溢出的问题。

由于有这些差异的存在,导致跨平台开发程序异常困难,但是对于Java来说,这些问题则不复存在。在Java中,所有的数值类型所占据的字节数与平台无关。


二、浮点型(2种)

浮点类型用于表示有小数部分的数值。

两种浮点类型:

  • float4字节、大约± 3.402,823,47E+38F,有效位数为6 ~ 7位)
  • double8字节、大约± 1.797,693,134,862,315,70E+308,有效位数为15位)

double(双精度数值)的数值精度是float类型的两倍。平时多使用double类型。float类型的数值有一个后缀Ff,没有后缀F的浮点数值总是默认为是double类型,或者浮点数值后有Dd的也是double类型的浮点数值。

用于表示溢出和出错情况时的三个特殊的浮点数值:

  • 正无穷大(一个正整数除以0时的结果)
  • 负无穷大
  • NaN(计算0/0或负数的开平方根的结果)

注意: 浮点数值不适用进行无法接收有误差的金融计算。例如,10.0 - 9.1的结果不是0.9,而是0.9000000000000004,这种有误差的原因是浮点数值采用二进制系统表示,而二进制系统中无法精确地表示分数。如果希望没有误差,那么应该使用BigDecimal类。


三、字符类型(1种)

字符类型原本是用来表示单个字符,现在也可用来描述Unicode字符。

一种字符类型:

  • char

char类型的字面量值要用单引号括起来。例如:'A'是编码值为65的字符常量;而"A"是字符串Achar类型的值也可以表示为十六进制,范围从\u0000\uFFFF


四、布尔类型(1种)

用来判定逻辑条件,值只有两个,分别是:true和false。

一种布尔类型:

  • boolean

需要注意的是: 在Java中,整型值和布尔值之间不能进行相互转换。在C++中,数值0相当于布尔值的false,非0值相当于布尔值的true


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值