Math类
- Math包含用于执行基本的数字运算等基本指数、对数、平方根法、三角函数。
常用方法
- random()
生成一个 [0, 1) 之间的随机数
这里是引用- max(a, b) / min(a, b)
比较两个数的大小- pow(a, b)
获取 a 的 b 次方- sqrt(a)
求a的平方根- ceil(a) / floor(a)
向上/下 取整,返回double- round(a)
四舍五入取整- abs(a)
获取绝对值
//ceil 天花板,向上取整
System.out.println(Math.ceil(3.16));//4.0
System.out.println(Math.ceil(-3.16));//-3.0
//floor 地板,向下取整
System.out.println(Math.floor(3.16));//3.0
System.out.println(Math.floor(-3.16));//-4.0
//round 四舍五入 取整
System.out.println(Math.round(3.16));//3
System.out.println(Math.round(-3.16));//-3
System.out.println(Math.round(3.56));//4
random类
Random不加密的安全。考虑使用SecureRandom得到加密的安全使用的安全敏感的应用伪随机数发生器。
伪随机数
- nextInt() / nextLong()
随机产生一个整数- nextInt(n)
随机产生一个 [0, n) 之间的数字- nextFloat() / nextDouble()
随机产生 [0 , 1) 之间的 小数- nextByte(byte[])
生成随机数、填充数组
SecureRandom安全随机数
SecureRandom的安全性是通过操作系统提供的安全的随机种子来生成随机数。这个种子是通过CPU的热噪声、读写磁盘的字节、网络流量等各种随机事件产生的“熵”。
在密码学中,安全的随机数非常重要。如果使用不安全的伪随机数,所有加密体系都将被攻破。因此,时刻牢记必须使用SecureRandom来产生安全的随机数。
- getInstanceStrong()
创建高强度安全随机数- new SecureRandom()
创建普通安全随机数
public Random(long seed)
使用一个单一的 long种子创造了一种新的随机数发生器。种子的伪随机数发生器的方法 next(int)保持内部状态的初始值。
调用new Random(seed)是等价的:
Random rnd = new Random();
rnd.setSeed(seed);
参数
seed -最初的种子
//构建一个 random 随机对象
Random random = new Random();
System.out.println(random.nextInt(2));
//构建一个普通的安全随机数对象
SecureRandom random1 = new SecureRandom();
// 0-10 的随机数
System.out.println(random1.nextInt(10));