数据的溢出:

当整数的数据大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,

这个整型变量所输出的值将发生紊乱,且不是预期的运行结果。

01 //  整数值如果超出了自己所可以表示范围的最大值,会出现溢出 
02 public class TestJava3_4 
03 { 
04  public static void main(String args[]) 
05  { 
06    int x = Java.lang.Integer.MAX_VALUE ;  //  得到整型的最大值

int y=2147483647 ;//int类型的最大值

07    
08   System.out.println("x = "+x);

09   System.out.println("x+1 = "+(x+1)); 
10   System.out.println("x+2 = "+(x+2)); 
11  } 
12 }

输出结果: 
x = 2147483647 
x+1 = -2147483648 
x+2 = -2147483647

当最大值加上 1 时,结果反而变成表示范围中最小的值;当最大值加上 2 时,结
果变成表示范围中次小的值,这就是数据类型的溢出。读者可以发现,这个情形会出
现一个循环,若是想避免这种情况的发生,在程序中就必须加上数值范围的检查功能,
或者使用较大的表示范围的数据类型,如长整型。

就像计数器的内容到最大值时会自动归零一样。而在整数中最小值为
-2147483648,所以当整数 x 的值最大时,加上 1 就会变成最小值-2147483648,也就
是产生了溢出。

为了避免 int 类型的溢出,可以在该表达式中的任一常量后加上大写的“L”,或
是在变量前面加上 long,作为强制类型的转换。

范例:TestJava3_5.java 
01 //  下面的这段程序当整型发生溢出之后,用强制类型进行转换 
02 public class TestJava3_5 
03 { 
04  public static void main(String args[]) 
05  { 
06   int x = java.lang.Integer.MAX_VALUE ; 
06    
08   System.out.println("x = "+x); 
09   System.out.println("x + 1 = "+(x+1)); 
10   System.out.println("x + 2 = "+(x+2L)); 
11   System.out.println("x + 3 = "+((long)x+3)); 
12  } 
13 } 
 
输出结果: 
x = 2147483647 
x + 1 = -2147483648 
x + 2 = 2147483649 
x + 3 = 2147483650

最新文章

  1. [bzoj3673][可持久化并查集 by zky] (rope(可持久化数组)+并查集=可持久化并查集)
  2. leetcode 111 minimum depth of binary tree
  3. 免费领取百度云盘2048G永久空间,永久离线下载特权
  4. javascript console 函数详解 js开发调试的利器
  5. js获取框架(IFrame)的内容
  6. BZOJ2243 (树链剖分+线段树)
  7. python webdriver测试报告
  8. dataguard 日志传输服务
  9. 基于curl 的zabbix API调用
  10. What’s the difference between an interface and an abstract class in Java?
  11. ECSHOP返回顶部的代码 纯CSS超简单
  12. document.body的一些用法以及js中的常见问题
  13. 苹果4S
  14. WebApi 得到提交过来的 post 数据
  15. eclipse maven引入第三方jar包后如何下载源代码(sources)
  16. Git合并一次commit到指定分支
  17. day2:day1作业 字符编码
  18. Centos7 开放80,3306端口解决办法
  19. 单点登录(SSO)解决方案之 CAS服务端数据源设置及页面改造
  20. eclipse下搭建shell脚本编辑器--安装开发shell的eclipse插件shelled

热门文章

  1. 使用 Xbox Game 录制桌面视频(录制音频)
  2. NET 特性(Attribute)
  3. STorM32 BGC三轴增稳云台驱动下载
  4. php 使用fsockopen 发送http请求
  5. linux系统下安装配置Jenkins
  6. Kali无法使用Chrome原因及解决方法
  7. SQL注入:Cookie注入
  8. [TCP/IP] 三次握手过程中有哪些不安全性
  9. flask 基础2
  10. JS高阶---闭包应用(自定义JS模块)