Java数据类型

1.整型

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

可以为数字字面量加下划线,如用1_000_000(或0b1111_0100_0010_1000_0000)表示一百万。这些下划线只是为了让人更易读。Java编译器会去除这些下划线。

和C++不同,C++的int类型在16位处理器上是2字节,在32位处理器上是4字节,long在32位上是4字节,在64位处理器上是8字节。在Java中,所有数据类型所占的字节数量与平台无关。
注意,Java没有任何无符号(unsigned)形式的int、long、short或byte类型。

2.浮点类型

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

float类型的数值有一个后缀F或f(例如,3.14F。)没有后缀F的浮点数值(如3.14)默认为double类型。当然,也可以在浮点数值后面添加后缀D或d(例如,3.14D)。

float f = 3.14F; // 没有F会报错
double d =3,14;

double表示这种类型的数值精度是float类型的两倍(有人称之为双精度数值)。绝大部分应用程序都采用double类型。在很多情况下,float类型的精度很难满足需求。实际上,只有很少的情况适合使用float类型,例如,需要单精度数据的库,或者需要存储大量数据。

注释:可以使用十六进制表示浮点数值。例如,0.125=2^-3可以表示成0x1.0p-3。在十六进制表示法中,使用p表示指数,而不是e。注意,尾数采用十六进制,指数采用十进制。指数的基数是2,而不是10.

所有的浮点数值计算都遵循IEEE754规范。具体来说,下面是用于表示溢出和出错情况的三个特殊的浮点数值:
•正无穷大
•负无穷大
•NaN(不是一个数字)

例如,一正整数除以0的结果为正无穷大。计算0/0或者负数的平方根结果为NaN。
需要注意,整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或NaN结果。
if(x==Double.NaN)
if(Double.isNaN(x))
not a number
警告:浮点数值不适用于无法接受舍入误差的金融计算中。例如,命令System.out.println(2.0-1.1)将打印出0.8999999999999999,而不是人们想象的0.9。这种舍入误差的主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确地表示分数1/10。这就好像十进制无法精确地表示分数1/3—样。
如果在数值计算中不允许有任何舍入误差,就应该使用BigDecimal类。

3.char类型

用单引号括起来

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

4. boolean 类型

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

5.数据类型转换

在这里插入图片描述
实心箭头表示无信息丢失的转换,虚线箭头表示可能有精度损失的转换。
如:

int n = 123456789;
float f = n; // f is 1.2345678E8

强制类型转换:

double x = 9.997;
int nx = (int) x;

四舍五入:

double x = 9.997;
int nx = (int)Math.round(x);

其中Math.round返回类型为long。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Brave Seeker

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

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

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

打赏作者

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

抵扣说明:

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

余额充值