`
jingzhongwen
  • 浏览: 12540 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
    Luhn是著名的校验和算法也叫模10算法,主要应用于解决银行卡号,社保号等重要信息传输出错问题。     先来解释下算法原理,校验和类型的算法,一般是ID+校验号,校验号和ID号的每位相关,如果出错,通过某种运算能检测出这种改动。借用维基百科的例子我来解释下。     我们以数字“7992739871”为例,计算其校验位: 从校验位开始,从右往左,偶数位乘2(例如,7*2=14),然后将两位数字的个位与十位相加(例如,10:1+0=1,14:1+4=5); 把得到的数字加在一起(本例中得到67); 将数字的和取模10(本例中得到7),再用10去减(本例中得到3),得到校验位 ...
    异常也是单元测试的一部分,java开发中,如何利用JUnit测试异常呢。     总结下来有两种方法,一种是注解,一种是try-catch,我们先来实现一个异常类   public class MyException extends RuntimeException{ //....omit }      需要测试的方法     public class MyClass{ public void execute(){ throw new MyException("A"); } }      1. ...
        Spring在注入bean的时候会做循环依赖检查,例如A依赖B,B依赖C,C依赖A,这就形成了一个循环依赖,Spring会抛出异常。         那么Spring是怎么做到循环依赖检查的呢?我们先来考虑,Spring是如何实现注入功能的,在注入A之前,如果A依赖B那么需要先注入B,然后依次类推下去,明显,这是一个递归的调用,Spring在其BeanFactory的实现类中,对getBean方法递归调用实现注入,代码如下: // spring 依赖注入 DFS String[] dependsOn = mbd.getDependsOn(); if (dependsOn ...
    取余计算对计算机来说是相对比较慢的,但是在许多场景下,例如循环队列指针的移动,hashmap的哈希操作都必须要做取余运算。     解决思路的大方向,其实跟用逻辑右移代替乘法一样(x*2 等价于 x << 1),也通过使 ...
Global site tag (gtag.js) - Google Analytics