打字猴:1.70044024e+09
1700440240
1700440241 注意 基本类型转换时,使用主动声明方式减少不必要的Bug。
1700440242
1700440243
1700440244
1700440245
1700440246 编写高质量代码:改善Java程序的151个建议 [:1700438092]
1700440247 编写高质量代码:改善Java程序的151个建议 建议24:边界,边界,还是边界
1700440248
1700440249 某商家生产的电子产品非常畅销,需要提前30天预订才能抢到手,同时它还规定了一个会员可拥有的最多产品数量,目的是防止囤积压货肆意加价。会员的预定过程是这样的:先登录官方网站,选择产品型号,然后设置需要预订的数量,提交,符合规则即提示下单成功,不符合规则提示下单失败。后台的处理逻辑模拟如下:
1700440250
1700440251 public class Client{
1700440252
1700440253 //一个会员拥有产品的最多数量
1700440254
1700440255 public final static int LIMIT=2000;
1700440256
1700440257 public static void main(String[]args){
1700440258
1700440259 //会员当前拥有的产品数量
1700440260
1700440261 int cur=1000;
1700440262
1700440263 Scanner input=new Scanner(System.in);
1700440264
1700440265 System.out.print(“请输入需要预定的数量:”);
1700440266
1700440267 while(input.hasNextInt()){
1700440268
1700440269 int order=input.nextInt();
1700440270
1700440271 //当前拥有的与准备订购的产品数量之和
1700440272
1700440273 if(order>0&&order+cur<=LIMIT){
1700440274
1700440275 System.out.println(“你已经成功预定的”+order+“个产品!”);
1700440276
1700440277 }else{
1700440278
1700440279 System.out.println(“超过限额,预订失败!”);
1700440280
1700440281 }
1700440282
1700440283 }
1700440284
1700440285 }
1700440286
1700440287 }
1700440288
1700440289 这是一个简易的订单处理程序,其中cur代表的是会员已经拥有的产品数量,LIMIT是一个会员最多拥有的产品数量(现实中这两个参数当然是从数据库中获得的,不过这里是一个模拟程序),如果当前预订数量与拥有数量之和超过了最大数量,则预订失败,否则下单成功。业务逻辑很简单,同时在Web界面上对订单数量做了严格的校验,比如不能是负值、不能超过最大数量等,但是人算不如天算,运行不到两小时数据库中就出现了异常数据:某会员拥有产品的数量与预订数量之和远远大于限额。怎么会这样?程序逻辑上不可能有问题呀,这是如何产生的呢?我们来模拟一下,第一次输入:
[ 上一页 ]  [ :1.70044024e+09 ]  [ 下一页 ]