`
cs_css
  • 浏览: 82758 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于java中边界值校验的问题

    博客分类:
  • java
阅读更多

web开发中,校验这个工作是必不可少的。一般来说,界面中需要加上javascript校验,但我们知道它并不可靠,很容易被绕过。那么在服务器端就需要加上后台校验。请看下面这种很常见的代码:

if(num>0 && num+1000<=2000){

    System.out.println("这个数合法!");

}else{

    System.out.println("这个数不合法!");

}

乍一看没问题,就是普通的参数校验,num值必须大于0,而且它加上1000必须小于2000

如果令num=300,执行结果显而易见是这样的:

这个数合法!

结果没有问题。

但如果令num=2147483647,输出结果又是如何呢?答案是:

这个数合法!

num值本身显然已经超过2000了,为什么还会打印出“这个数合法”呢?

答案就是:numint型的最大边界值,num+1000已经超出了int的最大值,如果将它打印出来,可以看到num+1000是:-2147482649,当然是小于2000

结论告诉我们,在java端参数校验时,必须要校验边界值。其实在单元测试标准里,三个值是必须测试的:0、正最大、负最小。如果这三个值都没有问题,才可以测试其它逻辑。
分享到:
评论

相关推荐

    华为 java 安全 编码 规范 安全篇 2.0

    规则 1.1 校验跨信任边界传递的不可信数据 规则 1.2 禁止直接使用不可信数据来拼接SQL语句 规则 1.3 禁止直接使用不可信数据来拼接XML 规则 1.4 禁止直接使用不可信数据来记录日志 规则 1.5 从格式化字符串中排除...

    MySQL 5.1中文手冊

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL ...

    mysql官方中文参考手册

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL ...

    MySQL 5.1官方简体中文参考手册

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL ...

    MySQL5.1参考手册官方简体中文版

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL ...

    c#学习笔记.txt

    如前所述,我是一个狮子座男人,一度我认为学习Java会使我看起来与众不同,可是几个月以后我放弃了这个选择,我看了论坛里关于这两种语言孰优孰劣的讨论,最终选择了C#,请不要问我为何做出这样的选择,很多人认为...

    MYSQL中文手册

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装...

    正则表达式

    正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它...

    mysql5.1中文手册

    通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装...

    MySQL 5.1参考手册中文版

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装...

    MySQL 5.1参考手册

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL ...

    MySQL 5.1参考手册 (中文版)

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL ...

    低清版 大型门户网站是这样炼成的.pdf

    2.5.1 在action中实现手动校验 90 2.5.2 调用校验框架进行自动校验 91 2.5.3 自定义国际化struts 2校验错误消息 92 2.5.4 struts 2的自带校验器 92 2.6 struts 2的拦截器 94 2.6.1 struts 2内建拦截器介绍 95 ...

    JavaScript高级教程

    2.5 原始值和引用值..............................................13 2.6 原始类型..............................................13 2.6.1 typeof 运算符..............................................14 ...

    Activiti5用户指南(中文版)

    1.5 报告问题 .................................................................................................................................................................... 1 1.6 试验性的特性 .....

Global site tag (gtag.js) - Google Analytics