第二天 JAVA核心技术I 【基本数据类型】

本文详细介绍了Java中的4种整型(int, short, long, byte)及其取值范围,以及浮点类型(float, double)的存储和精度。特别关注了无符号整数处理方法和Unicode编码在char类型中的应用。最后提到boolean类型的特点和枚举类型的用途。

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

  Java是一种强类型语言。这就意味着必须为每一个变量声明定义一种类型。Java中一共有8种基本类型,其中有4种整型、2种浮点型、1种字符类型char(用于表示Unicode编码的代码单元)和真值类型booLean。

2、基本数据类型

2.1、整形

类型存储需求取值范围
int4字节-2 147 483 648 ~ 2 147 483 647(刚刚超过20亿)
short2字节-32768~32767
long8字节-9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807
byte1字节-128 ~ 127

注意:Java中没有无符号整型

 但Byte、Integer、Long、都提供了处理无符号位除法和求余数的方法:

static  String  toUnsignedString(int/long i):将指定int或long型整数转换为无符号整数对应的字符串。

static  String  toUnsignedString(int/long i, int radix):将指定int或long型整数转换为指定进制的无符号整数对应的字符串。

static  xxx  parseUnsignedXxx(String s):将指定字符串解析为无符号整数。当调用类为Integer时,xxx 代表 int。

static  xxx  parseUnsignedXxx(String s, int radix):将指定字符串按指定进制解析为无符号整数。调用类为Integer时则xxx代表int

static int compareUnsigned(xxx x, xxx y):将x,y两个整数转换为无符号整数后比较大小。调用类为Integer时则xxx代表int。

static long divideUnsigned(long dividend, long divisor):将x、y两个整数转换为无符号整数后计算它们相除的商。

static long remainderUnsigned(long dividend, long divisor):将x、y两个整数转换为无符号整数后计算它们相除的余数。

此外,java8还为Byte、Short增加了toUnsigneddInt(xxx x)、toUnsignedLong(yyy  x)两个方法,这两个方法用于将指定byte或short类型的变量或值转换成无符号的int 或 long 值。
————————————————
版权声明:本文为优快云博主「CrownP」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/CrownP/article/details/88834275

2.2、浮点类型

类型存储需求取值范围
float4字节大约±3.402 823 47E+38F(有效位为6~7位)
double8字节大约±1.797 693 134 862 315 70E+308(有效位数为15位)

 注意:所有的浮点数计算都遵循IEEE754规范,具体来说,下面是用于表示溢出和错误的三个特殊浮点数值:正无穷大;负无穷大;NaN(不是一个数字)浮点数不适用于无法接受摄入误差的金融计算,浮点数无法精确表示分数,因为浮点数值二进制表示。在进行金融计算时需要使用BigDecimal,有同学或许想到使用整形来表示,但这里并不建议使用整型,因为如果计算:余额=8/3;又会回到之前的浮点数问题上去。

2.3、char 类型

  char类型用于表示单个字符。有些Unicode字符可以用一个char值描述,另外一些Unicode需要两个char。如\u005B是 [ 的编码。

转义序列名称Unicode值
\b退格\u0008
\t制表\u0009
\n换行\u000a
\r回车\u000d
"双引号\u0022
单引号\u0027
\反斜杠\u005c

2.4、Unicode和char类型

  要想弄清char类型,就必须了解Unicode编码。Unicode编码是对编码的统一。Java设计时采用16位的Unicode字符集,但在增加了大量的汉语、日语、韩语中的表意文字后,Unicode字符超过了65536,也就是说16位的char类型已经不能满足描述所有Unicode字符的需要了。在Java中,char类型被定义为16位数据类型,字符的十六进制范围从0x0000~0xFFFF。而Unicode标准扩展为0x10FFFF,Java为了纠正定义,开发了一种处理16位无法编码字符的方案。范围在0x010000到0x10FFFF之间的字符成为补充字符。在java核心技术一书中,强烈建议不要再程序中使用char类型。

2.4、boolean 类型

  boolean 整型与boolean 值不能互转。

2.5、枚举类型

  变量的取值只在一个有限的集合内。例如:衣服的尺码等。枚举类型可以取集合内的值和null值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

54号考生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值