Java中数字类型(int、float、long、double)的取值范围,内存泄漏

本文详细介绍了Java中的四种数字类型:int、long、float和double。包括它们的位数、表示范围及应用场景,并对float和double的特殊表示形式进行了说明。

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

java中的所有数字都是有符号的,没有类似于C语言的unsigned类型

---------------------------------------------------------------------

int类型

int在java中是固定的32bits,表示的范围是 -2^31至2^31-1。

10位:-2147483648~2147483647。正的20亿左右,小数量计算使用。

System.out.println(Integer.MAX_VALUE);   

System.out.println(Integer.MIN_VALUE);    

---------------------------------------------------------------------

long类型

long在java中是固定的64bits,表示范围是 -2^63至2^63-1。

19位:-9223372036854775808~9223372036854775807。相当大的数量,可以用在银行计算钱上。

System.out.println(Long.MAX_VALUE);    
System.out.println(Long.MIN_VALUE);

---------------------------------------------------------------------

float类型

float在java所在占位不固定,表示范围是 2^-149 至 2^128-1。

38位:1.4E-45~3.4028235E38。比long的位数多了一倍,主要用来简单数学中的精确运算。

System.out.println(Float.MAX_VALUE);
System.out.println(Float.MIN_VALUE);

---------------------------------------------------------------------

double类型

double在java所在占位不固定,表示范围是  2^-1074 至 2^1024-1 。

308位:4.9E-324 至 1.7976931348623157E308。是float数位的将近10倍,主要用来做复杂运算和天文运算。

System.out.println(Double.MAX_VALUE);
System.out.println(Double.MIN_VALUE);

---------------------------------------------------------------------

总结:

int与long都是符合2的n次方的形式,int是32位,long是64位,float与double则不符合这一规律。

float和doubled 表示形式与int和long是不一样的,采用的是IEEE 754标准,该标准理解如下:

(1)两者还是32位的,和int一样,最小值只是他们的精度,均为正数,请注意。如果要去的他们的最大负值,在他们的最大值前面加个符合即可,如-Float.MAX_VALUE,就是flost能表示的最大负值了。

(2)float从左到右,第一位是符号位,2-9位共8位表示正数位,2的(8-1)次方等于128,后面23位是表示小数的,所以最大值是2^128-1。
(3)double从左到右,第一位是符号位,2-12是共11位表示正数位,2的(11-1)次方是1024,剩余20位表示小数,所以最大值是2^1024-1。

(4)如上述代码,当正的最大值减去负的正数最大值,就会产生内存泄漏。溢出的结果是错误的。


参考地址:https://blog.youkuaiyun.com/u013905744/article/details/50997129


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值