java面试0106-java什么时候会出现i>i+1和i<i-1?

  1. 整数溢出

    int i = Integer.MAX_VALUE; // 2,147,483,647

    System.out.println(i > i + 1); // true

    int i2 = Integer.MIN_VALUE; // -2,147,483,648

    System.out.println(i2 < i2- 1); // true

  2. 浮点数精度问题

    double i = Double.MAX_VALUE; // 1.7976931348623157E308

    System.out.println(i3 > i 3+ 1); // false

    i + 1 的加法由于精度限制不会改变 i 的值(因为 1 相对于 Double.MAX_VALUE 太小)。

    因此,i 和 i + 1 实际上相等,i > i + 1 不成立,但如果涉及其他浮点运算,可能因舍入误差导致意外结果

相关推荐
Dicky-_-zhang16 小时前
Go语言内存管理与GC机制深度解析
java·jvm
白鲸开源16 小时前
干货!SeaTunnel(2.3.12)高阶用法(一):核心概念之数据流
java·大数据·github
夜白宋16 小时前
【项目深入】二、秒杀系统
java
花开·莫之弃16 小时前
Mac安装多版本jdk(jenv)
java·开发语言·macos
plainGeekDev16 小时前
Android架构面试题:MVP/MVVM/MVI都分不清,架构师跟你没关系
面试·架构
计算机安禾16 小时前
【c++面向对象编程】第32篇:移动语义与右值引用:现代C++性能优化核心
java·c++·性能优化
明天有专业课17 小时前
RAG-重排序策略
面试·aigc
qq_4017004117 小时前
Qt 自定义无边框窗口:标题栏、拖拽移动与缩放
开发语言·qt
fish_xk17 小时前
c++11的初见
开发语言·c++·算法
Amctwd17 小时前
【JavaScript】JS 异步 Promise 解析
开发语言·前端·javascript