1.Math类
(1)概述:Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
(2)成员变量
public static final double E | 自然底数 |
---|---|
public static final double PI | 圆周率 |
(3)成员方法
方法 | 作用 |
---|---|
public static int abs(int a) | 取绝对值 |
public static double ceil(double a) | 向上取整 |
public static double floor(double a) | 向下取整 |
public static int max(int a,int b) | 获取最大值 |
public static int min(int a, int b) | 获取最小值 |
public static double pow(double a,double b) | 获取a的b次幂 |
public static double random() | 获取随机数 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。 |
public static int round(float a) | 四舍五入 |
public static double sqrt(double a) | 获取正平方根 |
public class MyTest {
public static void main(String[] args) {
// Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
System.out.println(Math.abs(-1));
System.out.println(Math.min(50, 20));
System.out.println(Math.max(6.3, 6.8));
//求三个数的最大值
Math.max(Math.max(6.3, 6.8), 2.6);
// 向上取整
System.out.println(Math.ceil(3.14));
System.out.println(Math.floor(3.14));
System.out.println(Math.pow(2, 3));
System.out.println(Math.sqrt(4));
//求立方根
System.out.println(Math.pow(8, 1 / 3.0));
//随机小数
System.out.println(Math.random());
//四舍五入
System.out.println(Math.round(3.463636));
System.out.println(Math.PI);
}
}
2.Random类
(1)概述:此类用于产生随机数如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
(2)构造方法
方法 | 作用 |
---|---|
public Random() | 没有给定种子,使用的是默认的(当前系统的毫秒值) |
public Random(long seed) | 给定一个long类型的种子,给定以后每一次生成的随机数是相同的 |
(3)成员方法
方法 | 作用 |
---|---|
public int nextInt() | 没有参数 表示的随机数范围 是int类型的范围 |
public int nextInt(int n) | 可以指定一个随机数范围 |
void nextBytes(byte[] bytes) | 生成随机字节并将其置于用户提供的空的 byte 数组中 |
public class MyTest2 {
public static void main(String[] args) {
//Random 用来生成随机数据
Random random = new Random();
for (int i = 0; i < 20; i++) {
//没有给参数生成的随机数范围是int范围
// int num = random.nextInt();
int num = random.nextInt(100); //范围 0---99
System.out.print(num+" ");
}
System.out.println();
byte[] bytes = new byte[20];
random.nextBytes(bytes);
System.out.println(Arrays.toString(bytes));
}
}
public class MyTest3 {
public static void main(String[] args) {
/* Random( long seed)
使用单个 long 种子创建一个新的随机数生成器。*/
Random random = new Random(10L);
for (int i = 0; i < 10; i++) {
int num = random.nextInt(20);
System.out.print(num+" ");
}
System.out.println();
Random random1 = new Random(10L);
for (int i = 0; i < 10; i++) {
int num = random1.nextInt(20);
System.out.print(num+" ");
}
}
}
3.System类
(1)概述:System 类包含一些有用的类字段和方法。它不能被实例化。
(2)成员方法:
方法 | 作用 |
---|---|
public static void gc() | 调用垃圾回收器 |
public static void exit(int status) | 退出java虚拟机 0 为正常退出 非0为 异常退出 |
public static long currentTimeMillis() | 获取当前时间的毫秒值 |
4.BigDecimal类
(1)概述: 由于在运算的时候,float类型和double很容易丢失精度。所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal。它是不可变的、任意精度的有符号十进制数。
(2)构造方法:
public BigDecimal(String val) | 用字符串构造一个 BigDecimal对象 |
---|
(3)成员方法:
方法 | 作用 |
---|---|
public BigDecimal add(BigDecimal augend) | 加 |
public BigDecimal subtract(BigDecimal subtrahend) | 减 |
public BigDecimal multiply(BigDecimal multiplicand) | 乘 |
public BigDecimal divide(BigDecimal divisor) | 除 |
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode) | scale 小数点后面保留几位,roundingMode 取舍模式 比如四舍五入 |
public class MyTest {
public static void main(String[] args) {
BigDecimal aa = new BigDecimal("10");
BigDecimal bb = new BigDecimal("3");
// public BigDecimal divide (BigDecimal divisor,int scale, int roundingMode)//scale 小数点后面保留几位
BigDecimal divide = aa.divide(bb, 30, BigDecimal.ROUND_CEILING);
System.out.println(divide);
}
}
public class MyTest2 {
public static void main(String[] args) {
double a = 3.3333333333333335;
double b = 3.3333333333333335;
System.out.println(a * b);
BigDecimal aa = new BigDecimal("3.3333333333333335");
BigDecimal bb = new BigDecimal("3.3333333333333335");
BigDecimal multiply = aa.multiply(bb);
System.out.println(multiply.toString());
}
}