八维教育IT培训学校

八维教育IT培训学校七大校区

首页 > 新闻资讯 > >

java编程课程培训学习笔记|易疏忽的溢出

发布时间:2024-08-03 10:19:53 点击:

  大家都知道Java行业是很注重技术的,即使我们入行也要不断提升自己的技术水平才能不被淘汰,那么如何不断提升自己的Java编程技术呢?北京八维教育培训学校整理了一份java课程培训学习笔记——易疏忽的溢出。

易疏忽的溢出

  现象

  有时候溢出并不难,虽然不常复现:

  示例一:

  long x=Integer.MAX_VALUE+1;

  System.out.println(x);

  x是多少?竟然是-2147483648,明明加上1之后还是long的范围。类似的经常出现在时间计算:

  数字1×数字2×数字3…

  示例二:

  在检查是否为正数的参数校验中,为了避免重载,选用参数number, 于是下面代码结果小于0,也是因为溢出导致:

  Number i=Long.MAX_VALUE;

  System.out.println(i.intValue()>0);

易疏忽的溢出

  解决

  1). 让第一个操作数是long型,例如加上L或者l(不建议小写字母l,因为和数字1太相似了);

  2). 不确定时,还是使用重载吧,即使用doubleValue(),当参数是BigDecimal参数时,也不能解决问题。

  启示

  对数字运用要保持敏感:涉及数字计算就要考虑溢出;涉及除法就要考虑被除数是0;实在容纳不下了可以考虑BigDecimal之类。

北京八维教育培训学校云计算Java编程语言培训