Java之基本数据类型

本文详细介绍了Java中的基本数据类型,包括4种整型(byte, short, int, long)、2种浮点类型(float, double)、1种字符类型char和boolean类型。讨论了各类型的存储空间和取值范围,以及数值类型之间的转换规则。特别指出浮点类型不适合金融计算,建议避免使用char类型处理Unicode字符,并强调了布尔值与整型间的不可转换性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java中一共有8种基本类型,其中有4中整型、2种浮点类型、1种字符类型char(用于表示Unicode编码的代码单元)和一种用于表示真值的boolean类型。

整型

整型用于表示没有小数部分的数值,允许是负数。Java提供了4种整型,如下:

名称存储空间取值范围
byte1字节-128(-2的7次方)~127(2的7次方-1)
short2字节-32768 (-2的15此方)~32767 (2的15次方-1)
int4字节-2147483648 (-2的31次方)~ 2147483647 (2的31次方-1)
long8字节-9223372036854775808 (-2的63次方)~9223372036854775807 (2的63次方-1)

需要注意的是,由于Java程序必须保证在所有机器上都能够得到相同的运行结果,所以各种数据类型的取值范围必须固定,也就是说所有数值类型所占据的字节数与平台无关。另外,java没有任何无符号形式的int、long、short或byte类型

浮点类型

浮点类型用于表示有小数部分的数值。在Java中有两种浮点类型:

名称存储空间取值范围
float4字节大约正负3.40282347E+38F(有效位数为6~7位) (2的128次方-1)
double8字节大约正负1.79769313486231570E+308(有效位数为15位) (2的1024次方-1)

double表示这种类型的数值精度是float类型的两倍(有人称之为双精度数值)。实际上,只有很少的情况适合使用float类型,例如,需要单精度的库,或者需要存储大量数据时。

float类型的数值有一个后缀F或f。没有后缀F的浮点数值总是默认为double类型。

需要注意的是,浮点数值不适用于无法接受舍入误差的金融计算。例如,命令System.out.println
(2.0-1.1)将打印0.8999999999999999,而不是我们期望的0.9。这种舍入误差的主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确地表示分数1/10。这就好像十进制无法精确地表示分数1/3一样。如果在数值计算中不允许有任何舍入误差,就应该使用BigDecimal类。

Char类型

char类型原本用于表示单个字符。不过,现在情况已经有所变化。如今,有些Unicode字符可以用一个char值描述,另外一些Unicode字符这需要两个char值。

char类型的字面量值要用单引号括起来。在Java中,char类型描述了UTF-16编码中的一个代码单元。但是在实际应用中,强烈建议不要在程序中使用char类型,除非确实需要处理UTF-16代码单元。最好将字符串作为抽象数据类型处理。至于为什么不建议使用,这涉及到Unicode编码的演变以及后续的改进,这里不再详述。

boolean类型

boolean类型有两个值:true和false,用来判断逻辑条件。整型值和布尔值之间不能进行相互转换。

数值类型之间的转换

6个实线箭头,表示无信息丢失的转换;另外有3个虚线箭头,表示可能有精度损失的转换。
在这里插入图片描述
当用一个二元运算符链接两个值时(例如n+f,n表示整数,f是浮点数),先要将两个操作数转换为同一种类型,然后再进行计算,转换规则如下。

  • 如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型
  • 否则,如果其中一个操作数是float类醒,另一个操作数将会转换为float类型
  • 否则,如果其中一个操作数是long类型,另一个操作数将会转换为long类型
  • 否则,两个操作数都将被转换为int类型

从以上内容可知,在必要的时候,int类型的值将会自动转换为double类型。但是另一方面,有时也需要将double转换成int。在Java中,允许进行这种数值之间的类型转换,当然,有可能会丢失一些信息。这种可能丢失信息的转换要通过强制类型转换来完成。强制类型转换的语法格式是在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值