`
cs_css
  • 浏览: 83959 次
  • 性别: 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安全编码培训.pdf

    Java安全编码培训是针对Java开发人员进行的一项专业培训,旨在提升程序员在编写代码时对安全性问题的认识和能力,防止在软件开发过程中引入安全隐患。本次培训涵盖了安全编码的重要性和基本概念,包括安全编码考核...

    java根据卡号识别银行

    在Java编程领域,根据卡号识别银行是一项常见的需求,特别是在金融系统或支付平台的开发中。这个项目包含了一个资源类和一个测试类,用于实现这一功能。资源类通常用来存储和处理与银行卡号相关的数据,而测试类则...

    入参校验的案例代码请求

    在给定的场景中,"入参校验的案例代码请求"可能是指寻求关于如何在Java中实现有效参数验证的示例代码。下面,我们将深入探讨Java中的入参校验,并提供相关的案例代码。 1. **为什么需要入参校验?** - 防止程序...

    java正则表达式pattern

    Java中的正则表达式Pattern是处理文本匹配的关键组件,它基于正则表达式语法来创建模式,用于在字符串中执行查找、替换等操作。在Java中,`Pattern`类是正则表达式的核心,它提供了编译正则表达式并创建匹配器...

    xxtea_java.rar_XXTEA_XXTEA java_java XXTEA_java加解密

    XXTEA(Extreme eXtended TEA...以上就是关于XXTEA Java实现的一些基本知识点,包括算法原理、Java实现的步骤、可能的代码结构以及使用时的注意事项。理解这些内容可以帮助开发者在Java项目中有效地应用XXTEA加密算法。

    JAVA正则表达式详解可以帮助你做验证

    Java正则表达式是编程语言Java中用于处理字符串的强大工具,它主要用于文本匹配、查找、替换和分割等操作。在Web开发中,正则表达式常用于数据验证,确保用户输入的数据符合特定格式,从而提高应用程序的安全性和...

    Java一些常用验证整理

    在Java编程中,验证是确保输入数据符合预期格式或标准的重要环节。这里的【标题】"Java一些常用验证整理"和【描述】"Java一些常用验证整理,附有有关代码"指的是收集并整理了一些常见的Java验证方法。这些方法主要...

    JSR303定义的校验类型

    此注解用于验证数值或字符串类型的属性是否在指定的最小值和最大值之间(包含边界值)。例如: ```java @Range(min = 10000, max = 50000, message = "range.bean.wage") private BigDecimal wage; ``` 在这个例子中...

    java正则表达式详解(PDF)

    Java正则表达式是Java编程语言中的一个强大工具,用于处理字符串模式匹配和搜索替换操作。它是基于Perl和POSIX正则表达式的实现,提供了一种灵活且强大的方式来处理文本数据。本文件"java正则表达式详解(PDF)"深入...

    java后台获取扫码枪数据.7z

    在Windows平台上,使用Java进行后台开发时,与扫码枪交互是一项常见的需求。扫码枪作为一种便捷的数据输入设备,能够...在实际应用中,还需要考虑兼容性、性能优化以及错误处理等问题,确保系统的稳定性和用户体验。

    正则表达式验证工具Java

    在Java中,正则表达式是通过java.util.regex包提供的API来实现的。本工具"正则表达式验证工具Java"专注于帮助开发者测试和验证他们的正则表达式,确保其能够按预期工作。 该工具的核心功能在于提供了一个用户友好的...

    校招Java工程师面试问题及答案(全)

    在面试中,你可能还会遇到关于TCP粘包的问题,这是因为TCP是一种流式协议,它不保留消息边界,数据可以连续到达而无间隔,所以需要应用程序来定义消息边界。关于TCP三次握手过程,面试官可能会问为什么要三次握手而...

    effective-java 配套代码

    2. **单例模式(Singletons)**: 书中讨论了几种实现单例的方式,包括懒汉式、饿汉式、双检锁/双重校验锁(DCL)和静态内部类方式,对比了它们的优缺点和线程安全问题。 3. **构造函数与工厂方法(Constructors and...

    java源码:QR解码的Java实现程序.rar

    【标题】:“java源码:QR解码的Java实现程序.rar”揭示了如何在Java编程环境中实现二维码(QR Code)的解码功能。QR Code是一种二维条形码,广泛用于存储网址、联系信息、文本、图像等数据。这个Java源码提供了一个...

    java在编写网络通信程序中的应用

    Java在编写网络通信程序中的应用广泛,这得益于其独特的特性和强大的网络库支持。以下是Java在网络通信中的关键知识点: 1. **简明性**:Java的设计借鉴了C++的语法,但去除了如指针和内存管理等可能导致错误的元素...

    java个人总结,觉得还不错

    垃圾回收是Java的另一个核心机制,其主要功能是在程序运行过程中自动回收不再使用的对象所占用的内存空间,从而避免内存泄漏问题。Java的垃圾回收机制主要包括以下几个方面: - **标记-清除算法**:最基础的垃圾回收...

    验证 数值 范围.rar

    边界值测试是软件测试中的一个重要部分,因为它能暴露很多潜在问题。 5. **数值类型的扩展**:在处理大数据或高精度计算时,可能会用到扩展的数值类型,如大整数(BigInt)或高精度浮点数(BigDecimal),这时验证...

    Java 资源 JAVA的介绍

    7. **健壮性**:Java有严格的类型检查和异常处理机制,通过数组边界检测、字节码校验等手段保证程序的稳定性和安全性。 8. **高性能**:Java的自动内存管理,包括垃圾回收机制,有效防止内存泄漏,提升了程序性能。...

    java实现国密sm3算法程序

    在文件完整性校验中,可以计算文件的SM3摘要,存储并比较不同时期的摘要以确认文件未被篡改。 5. **Java密码学API**:Java提供了一套密码学API(Java Cryptography Architecture, JCA),可以集成SM3算法。开发者...

Global site tag (gtag.js) - Google Analytics