目录
一.Math类
static double | E 比任何其他值都更接近 e(即自然对数的底数)的 double 值。 |
static double | PI 比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。 |
static double | abs(double a) 返回 double 值的绝对值。 |
static float | abs(float a) 返回 float 值的绝对值。 |
static int | abs(int a) 返回 int 值的绝对值。 |
static long | abs(long a) 返回 long 值的绝对值。 |
static double | acos(double a) 返回一个值的反余弦;返回的角度范围在 0.0 到 pi 之间。 |
static double | asin(double a) 返回一个值的反正弦;返回的角度范围在 -pi/2 到 pi/2 之间。 |
static double | atan(double a) 返回一个值的反正切;返回的角度范围在 -pi/2 到 pi/2 之间。 |
static double | atan2(double y, double x) 将矩形坐标 ( x , y ) 转换成极坐标 (r, theta),返回所得角 theta。 |
static double | cbrt(double a) 返回 double 值的立方根。 |
static double | ceil(double a) 返回最小的(最接近负无穷大) double 值,该值大于等于参数,并等于某个整数。 |
static double | copySign(double magnitude, double sign) 返回带有第二个浮点参数符号的第一个浮点参数。 |
static float | copySign(float magnitude, float sign) 返回带有第二个浮点参数符号的第一个浮点参数。 |
static double | cos(double a) 返回角的三角余弦。 |
static double | cosh(double x) 返回 double 值的双曲线余弦。 |
static double | exp(double a) 返回欧拉数 e 的 double 次幂的值。 |
static double | expm1(double x) 返回 ex -1。 |
static double | floor(double a) 返回最大的(最接近正无穷大) double 值,该值小于等于参数,并等于某个整数。 |
static int | getExponent(double d) 返回 double 表示形式中使用的无偏指数。 |
static int | getExponent(float f) 返回 float 表示形式中使用的无偏指数。 |
static double | hypot(double x, double y) 返回 sqrt(x2 +y2),没有中间溢出或下溢。 |
static double | IEEEremainder(double f1, double f2) 按照 IEEE 754 标准的规定,对两个参数进行余数运算。 |
static double | log(double a) 返回 double 值的自然对数(底数是 e)。 |
static double | log10(double a) 返回 double 值的底数为 10 的对数。 |
static double | log1p(double x) 返回参数与 1 之和的自然对数。 |
static double | max(double a, double b) 返回两个 double 值中较大的一个。 |
static float | max(float a, float b) 返回两个 float 值中较大的一个。 |
static int | max(int a, int b) 返回两个 int 值中较大的一个。 |
static long | max(long a, long b) 返回两个 long 值中较大的一个。 |
static double | min(double a, double b) 返回两个 double 值中较小的一个。 |
static float | min(float a, float b) 返回两个 float 值中较小的一个。 |
static int | min(int a, int b) 返回两个 int 值中较小的一个。 |
static long | min(long a, long b) 返回两个 long 值中较小的一个。 |
static double | nextAfter(double start, double direction) 返回第一个参数和第二个参数之间与第一个参数相邻的浮点数。 |
static float | nextAfter(float start, double direction) 返回第一个参数和第二个参数之间与第一个参数相邻的浮点数。 |
static double | nextUp(double d) 返回 d 和正无穷大之间与 d 相邻的浮点值。 |
static float | nextUp(float f) 返回 f 和正无穷大之间与 f 相邻的浮点值。 |
static double | pow(double a, double b) 返回第一个参数的第二个参数次幂的值。 |
static double | random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0 。 |
static double | rint(double a) 返回最接近参数并等于某一整数的 double 值。 |
static long | round(double a) 返回最接近参数的 long 。 |
static int | round(float a) 返回最接近参数的 int 。 |
static double | scalb(double d, int scaleFactor) 返回 d × 2scaleFactor ,其舍入方式如同将一个正确舍入的浮点值乘以 double 值集合中的一个值。 |
static float | scalb(float f, int scaleFactor) 返回 f × 2scaleFactor ,其舍入方式如同将一个正确舍入的浮点值乘以 float 值集合中的一个值。 |
static double | signum(double d) 返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回 -1.0。 |
static float | signum(float f) 返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回 -1.0。 |
static double | sin(double a) 返回角的三角正弦。 |
static double | sinh(double x) 返回 double 值的双曲线正弦。 |
static double | sqrt(double a) 返回正确舍入的 double 值的正平方根。 |
static double | tan(double a) 返回角的三角正切。 |
static double | tanh(double x) 返回 double 值的双曲线余弦。 |
static double | toDegrees(double angrad) 将用弧度表示的角转换为近似相等的用角度表示的角。 |
static double | toRadians(double angdeg) 将用角度表示的角转换为近似相等的用弧度表示的角。 |
static double | ulp(double d) 返回参数的 ulp 大小。 |
static float | ulp(float f) 返回参数的 ulp 大小。 |
class Main{
public static void main(String[] args){
System.out.println("计算-10的绝对值:"+Math.abs(-10));
System.out.println("求大于5.6的最小整数:"+Math.ceil(5.6));
System.out.println("求小于-4.2的最大整数:"+Math.floor(-4.2));
System.out.println("对-4.6进行四舍五入:"+Math.round(-4.6));
System.out.println("求2.1和-2.1中的较大值:"+Math.max(2.1,-2.1));
System.out.println("生成一个大于等于0.0并小于1.0的随机数:"+Math.random());
System.out.println("计算1.57的正弦值:"+Math.sin(1.57));
System.out.println("计算4的平方根:"+Math.sqrt(4));
System.out.println("计算二的3次方根:"+Math.pow(2,3));
}
}
二.Random类
Random类可以产生指定范围的随机数。Random类提供了两个构造方法,如下:
方法声明 | 功能描述 |
Random() | 使用当前系统时间创建一个Random对象 |
Random(long seed) | 使用参数seed指定的种子创建一个Random对象 |
第一个构造方法是无参的,通过它创建的Random对象每次使用的种子是随机的,因此每个对象产生的随机数不同。如果希望创建的多个Random对象产生相同的随机数,则可以在创建对象时调用第二个构造方法,传入相同的参数即可。
第一种构造方法产生随机数:
import java.util.*;
class Main{
public static void main(String[] args){
Random random=new Random();
for(int i=0;i<5;i++){
System.out.println(random.nextInt(100));//[0,100)
}
}
}
可见,两次产生的随机数序列是不一样的。这是因为创建Random对象时没有指定种子,系统会以当前时间戳作为种子,产生随机数。由于每一时刻的时间戳都不一样,所以每一次运行时产生的随机数也不一样。
第二种构造方法:
import java.util.*;
class Main{
public static void main(String[] args){
Random random=new Random(13);
for(int i=0;i<5;i++){
System.out.println(random.nextInt(100));//[0,100)
}
}
}
可见,如果指定了相同的种子,则每次运行所有对象产生的随机数序列都相同。
Matn类提供了生成随机数的random()方法。相对于Math类,Random类提供了更多的方法来生成随机数,不仅可以产生整数类型的随机数,还可以生成浮点数类型的随机数。
Random类的常用方法
protected int | next(int bits) 生成下一个伪随机数。 |
boolean | nextBoolean() 返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean 值。 |
void | nextBytes(byte[] bytes) 生成随机字节并将其置于用户提供的 byte 数组中。 |
double | nextDouble() 返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。 |
float | nextFloat() 返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。 |
double | nextGaussian() 返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的 double 值,其平均值是 0.0 ,标准差是 1.0 。 |
int | nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 |
int | nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。 |
long | nextLong() 返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。 |
void | setSeed(long seed) 使用单个 long 种子设置此随机数生成器的种子。 |