随机数
1、Math(数学类)
0.0~1.0 之间的随机数方法
random() //static修饰 返回的是double类型
api:
static double random()
返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
2、Random类
0~指定数之间随机(包含0,不包含指定数) 没有static修饰
api:
int nextInt(int n)
返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
long nextLong()
返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
3、ThreadLocalRandom类
构造方法私有化了:
static ThreadLocalRandom current() //static修饰的,返回是ThreadLocalRandom类型对象
返回当前线程的 ThreadLocalRandom。
api:
两个数之间随机(含头不含尾)
int nextInt(int origin, int bound)
返回一个指定的起点之间的伪随机 int值(含)与指定的绑定(独家)。
double nextDouble(double origin, double bound)
返回一个指定的起点之间的伪随机 double值(含)和绑定(独家)。
4、UUID类
static UUID randomUUID() //生成随机的4组随机数
获取类型 4(伪随机生成的)UUID 的静态工厂。
线程
1、同步线程
1、同步代码块
括号里面可以放对象(必须要全局修饰的),字节码文件,字符串(放到常量池里,所以是公共的一个)
synchronized (同步监听对象) {
可能引发线程安全问题的代码
}
2、同步方法
加入关键字 synchronized
2、锁机制(常用)
接口 Lock java.util.concurrent.locks
ReentrantLock :它的一个常用实现类 (常用)
api: (没有static修饰)
void lock() //关闭锁;这个方法没有返回值
获取锁。
void unlock() //开锁;没有方法没有返回值
试图释放此锁。