Maven设置项目的Java编译版本
在POM文件里加几行代码就能快速搞定
在POM文件里加几行代码就能快速搞定
测试一个功能需要随机的银行卡号,找了找发现没啥好用的,就自己搞了个轮子,勉强能用吧
在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。限流通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理。除此以外,限流还会有其他的原因,比如控制单个服务的流量、管理资源配额、避免费用超额等等。
将BigDecimal的金额格式化
偶然间看到Random类的构造函数中有181783497276652981
这么一个Magic Number, 没有定义为常量, 也没有对这个数做什么特别的说明, 感觉很奇怪, 于是好奇心驱使我扒一扒这个数字的由来:
// java version: 1.8.0_251
public class Random implements java.io.Serializable {
// ...
/**
* The internal state associated with this pseudorandom number generator.
* (The specs for the methods in this class describe the ongoing
* computation of this value.)
*/
private final AtomicLong seed;
/**
* Creates a new random number generator. This constructor sets
* the seed of the random number generator to a value very likely
* to be distinct from any other invocation of this constructor.
*/
public Random() {
this(seedUniquifier() ^ System.nanoTime());
}
private static long seedUniquifier() {
// L'Ecuyer, "Tables of Linear Congruential Generators of
// Different Sizes and Good Lattice Structure", 1999
for (;;) {
long current = seedUniquifier.get();
long next = current * 181783497276652981L;
if (seedUniquifier.compareAndSet(current, next))
return next;
}
}
private static final AtomicLong seedUniquifier
= new AtomicLong(8682522807148012L);
// ...
}