首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Java基础 | 定义long类型不指定后缀的后果

Java基础 | 定义long类型不指定后缀的后果

作者头像
青山师
发布于 2023-05-05 19:52:13
发布于 2023-05-05 19:52:13
7150
举报

今天见到一个有意思的现象:

代码语言:javascript
复制
long a = 60*60*24*1000;
long b = 60*60*24*1000*1000;
System.out.println(a);
System.out.println(b);
System.out.println(b / a);

运行输出:

86400000 500654080 5

调整代码后:

代码语言:javascript
复制
long a = 60*60*24*1000L;
long b = 60*60*24*1000*1000L;
System.out.println(a);
System.out.println(b);
System.out.println(b / a);

再运行输出:

86400000 86400000000 1000

原因是这样的,字面量类型java中默认采用整型而int最大值(2^31-1,2147483647),所以如果声明: long b = 60*60*24*1000*1000表达式的结果为86400000000已经溢出。所以在使用较大的long类型数据时,记得增加L 或者 l 后缀。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档