
JAVA BUG
java 中一些写法在运行中可能因一些特殊数据而引发的运行时异常的隐式bug,做一下记录并作出通用优化建议。
新迹
这个作者很懒,什么都没留下…
展开
-
Java位运算
例如:-5>>>2 结果为 1073741821(-5 的二进制补码形式为 11111111111111111111111111111011,无符号右移两位变为 001111111111111111111111111111101,即十进制的 1073741821)。例如,将一个整数乘以 2 可以使用左移一位(n 1)来实现。例如:~5 结果为 - 6(5 的二进制为 0101,取反后为 1010,即十进制的 - 6)。原创 2024-09-24 14:37:59 · 209 阅读 · 1 评论 -
Java Stream流reduce时报错java.util.NoSuchElementException: No value present
此种写法因为年龄大于30从而过滤结果为空,而reduce函数返回的是一个Optional类的结果,当值为空时,直接调用Optional的get方法会抛异常。将map直接换成具体的mapToInt,再使用sum()进行求和,即可避免null时Option判空抛出的异常。相应的数据类型也可转换为 mapToDouble、mapToLong ,根据情况进行选择即可。避免异常的改造,实现效果:当筛选的结果集为空时,年龄和为0。原创 2024-08-12 09:58:20 · 324 阅读 · 0 评论