这涉及到计算机中数值的表示方法,计算机中整型数值是用【补码】来表示的。

详情可以参考这里:《原码, 反码, 补码 详解》

简单的说,就是用字节的最高位表示符号的正负,0代表正,1代表负;但是这个符号位也会参与运算,java的int是4个字节,每个字节8位,所以int的最大值用二进制表示就是:

01111111 11111111 11111111 11111111;

将这个值加一时,从右往左一直进位,结果是:

10000000 00000000 00000000 00000000,

注意,最高位为1,表示负数,本来这个结果在原码里代表-0,但是补码消除了消除了+0和-0的冗余和歧义,使0只用一个表达方式就是:

00000000 00000000 00000000 00000000

反正放着“10000000 00000000 00000000 00000000”不用白不用,所以就用这个结果把补码的表示范围扩大一位,使其表达为最小值,而且这个值能满足运算的结果表示,即(-2147483647) + (-1)等等结果确实是这个值;比如,如果用反码,最小值是-2147483647,因为用的是补码,所以这个值不用白不用,不让它表示0,那就让它表示-2147483648(-2147483647 + (-1))吧

java整形超过,Java整形溢出处理机制。相关推荐

  1. JVM最佳学习笔记一---Java内存区域与内存溢出异常

    2019独角兽企业重金招聘Python工程师标准>>> 前言 本笔记参照了周志明<深入理解Java虚拟机:JVM高级特性与最佳实践>第三版,读完之后受益匪浅,让我对Jav ...

  2. Java虚拟机——Java内存区域与内存溢出

    内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域.Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器.Java虚拟机栈.本地方法栈 ...

  3. java 大数据处理之内存溢出解决办法(一)

    http://www.cnblogs.com/a757956132/p/4644910.html http://my.oschina.net/songhongxu/blog/209951 一.内存溢出 ...

  4. 《深入理解java虚拟机》第2章 Java内存区域与内存溢出异常

    Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的"高墙",墙外面的人想进去,墙里面的人却想出来. 2.1 概述 https://blog.csdn.net/q5706 ...

  5. 《深入理解JAVA虚拟机》周志明 第三版 - 第二章 JAVA内存区域与内存溢出异常

    一. 概述 在虚拟机自动内存管理机制下,不容易出现内存泄漏和内存溢出问题,但是一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那排查错误.修正问题将会成为一项异常艰难的工作. 二. ...

  6. java 大数据处理之内存溢出解决办法

    因项目中需要查询大量数据,所以导致jvm内存溢出,发现这篇博文不错,转发来共同学习 原文地址:https://www.cnblogs.com/a757956132/p/4644910.html 一.内 ...

  7. 《深入理解JAVA虚拟机》详细解读(第二章 ):JAVA内存区域与内存溢出异常

    目录 一.JAVA内存区域与内存溢出异常 1. 概述 2. 运行时数据区域 2.1 程序计数器 2.2 Java虚拟机栈 2.3本地方法栈 2.4 堆 2.5 方法区 2.6 运行时常量池 2.7直接 ...

  8. 深入理解Java虚拟机(二)Java内存区域与内存溢出异常

    一.前言 对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出问题,看起来由虚拟机管理内存一切都很美好 ...

  9. java内存区域与内存溢出异常_Java内存区域与内存溢出异常

    Java的内存管理是一个老生常谈的问题,虽然Java号称可以自动管理自己的内存,使程序员从内存管理的围墙解放出来,但是一连串的内存泄漏和溢出方面的问题,使得我们不得不去深入了解Java的内存管理机制. ...

最新文章

  1. dedecms /member/reg_new.php SQL Injection Vul
  2. CentOS 7安装gitlab服务器
  3. 计算机二级第十七套真题,2012年计算机二级VB第十七套上机试题及解析.doc
  4. Javascript 中 null、NaN和undefined的区别
  5. display:inline、block、inline-block的区别
  6. data.push({name:'a',value:'a'});
  7. html偷拍代码,一段植入木马的html代码
  8. Spring Boot 应用的测试
  9. ios企业应用发布流程
  10. (并查集)小希的迷宫
  11. LINUX考证优惠信息转发(图)
  12. 基于spring-redis发布订阅模式的实现
  13. java操作地理位置信息
  14. Trust Region Policy Optimization (TRPO) 背后的数学原理
  15. Writing Serializable Classes---定义可序列化的类
  16. 传输预编码matlab,无线通信-预编码-MATLAB代码合集-毕设专用.zip
  17. 英语单词拼写游戏开发纪录
  18. 分享微信使用技巧,快来涨姿势啦
  19. 源码包安装Nginx(1.19.1),并配置Nginx,比如:用户认证,防盗链,虚拟主机,SSL等功能
  20. python单词怎么写_python 写的查单词的脚本

热门文章

  1. PHP中的PathInfo
  2. xmlHttpRequest避免缓存的办法
  3. Hivr:基于BCH的社交应用
  4. 李志飞:想在中国复制 Echo 的成功,肯定都不靠谱
  5. Apache-2.2.32安装配置
  6. JS框架设计之加载器所在路径的探知一模块加载系统
  7. 前端性能优化之jQuery按需加载轮播图
  8. 装了虚拟机,但是没有虚拟网卡vmnet0 vmnet1 vmnet8
  9. memcached原理详述及配置
  10. 准备开始在51上写博了。