Math.random,Random,ThreadLocalRandom

为什么要定义一个私有静态不可继承类呢?直接定义一个成员变量它不好吗? 还要多写一个类。

在 Math 类中定义一个成员变量也可以,但是这个东西貌似不属于 Math,体现了不单一。

单写一个类,体现了 类的可读性以及单一原则。

包括一些单例的时候,有的人也会定义一个私有类,在之前也写过。
直接在类中写单例行不行,也可以的。
在这里插入图片描述

后续思考。
可以看到方法上面,说到了这个方法生成一个 double 值:大于等于 0.0,小于 1(并且是伪随机的偏向于均匀分布的算法)。
并且它说这个方法是线程安全的 synchronized,但是你要告诉进行生成,会产生线程的争用。

我们来进一步分析:
在这里插入图片描述

对于以上随机生成效率不高,解决方案是什么呢?
》》》类似于 ThreadLocal 思想的,基于 Thread 类的成员变量,来做到线程隔离来避免争用。
在这里插入图片描述