一 ,MATH
Math,代表数学,是一个工具类,里面提供的都是对数据进行操作的一些静态方法。
Math类提供的常见方法
方法名 | 说明 |
public static int abs(int a) | 获取参数绝对值 |
public static double ceil(double a) | 向上取整 |
public static double floor(double a) | 向下取整 |
public static int round(float a) | 四舍五入 |
public static int max(int a,int b) | 获取两个int值中的较大值 |
public static double pow(double a,double b) | 返回a的b次幂的值 |
public static double random() | 返回值为double的随机值,范围[0.0,1.0) |
public class Test {
public static void main(String[] args) {
Math.abs(-12);// 12 取绝对值
Math.ceil(9.00001);//10.0 向上取整
Math.floor(9.9999);//9.0 向下取整
Math.round(9.4999);//9 四舍五入
Math.max(9.9, 10.0);//10.0 取最大值
Math.min(9.9,10.0);//9.9 取最小值
Math.pow(2,3);//8 2的三次方
Math.random();// 取随机数【0.0,1.0) 包前不包后
}
}
二,System
System类提供的常见方法
方法名 | 说明 |
public static void exit(int status) | 终止当前运行的Java虚拟机。 |
public static long currentTimeMillis() | 返回当前系统的时间毫秒值形式 |
public class Test {
public static void main(String[] args) {
//1,终止当前运行的java虚拟机
//System.exit(0);//人为终止虚拟机
//获取当前系统的时间
long time = System.currentTimeMillis();
//返回的是long类型的时间毫秒值,指的是1970-01-01 0:0:0到此时的毫秒值
System.out.println(time);
for (int i = 0; i < 100000; i++) {
System.out.println("输出了:" +i);
}
long time1 = System.currentTimeMillis();
System.out.println((time1 - time) / 1000.0 + "s");
//程序性能分析
}
}
三,Runtime
Runtime类提供的常见方法
方法名 | 说明 |
public static Runtime getRuntime() | 返回与当前Java应用程序关联的运行时对象 |
public void exit(int status) | 终止当前运行的虚拟机 |
public int availableProcessors() | 返回Java虚拟机可用的处理器数。 |
public long totalMemory() | 返回Java虚拟机中的内存总量 |
public long freeMemory() | 返回Java虚拟机中的可用内存 |
public Process exec(String command) | 启动某个程序,并返回代表该程序的对象 |
public class test {
public static void main(String[] args) throws IOException, InterruptedException {
Runtime r = Runtime.getRuntime();
r.exit(0);//终止当前运行的虚拟机
System.out.println(r.availableProcessors());
//获取虚拟机能够使用的处理器数
System.out.println(r.totalMemory()/1024.0/1024.0);
//获取虚拟机的内存总量(m)
System.out.println(r.freeMemory()/1024.0/1024.0);
//获取虚拟机的可用内存量(m)
Process p = r.exec("D:\\Program Files\\bilibili\\哔哩哔哩.exe");
//启动某个程序,并返回相应的对象
Thread.sleep(5000);//让程序在这里暂停5s,再运行程序
p.destroy();
//关闭程序
四,BigDecimal
public static void main(String[] args) {
//小数运算失真
double a = 0.1;
double b = 0.2;
double c =a+b;
System.out.println(c);//0.30000000004
BigDecimal的常见构造器、常用方法
构造器 | 说明 |
public BigDecimal(double val) 注意:不推荐使用这个 | 将 double转换为 BigDecimal |
public BigDecimal(String val) | 把String转成BigDecimal |
方法名 | 说明 |
public static BigDecimal valueOf(double val) | 转换一个 double成 BigDecimal |
public BigDecimal add(BigDecimal b) | 加法 |
public BigDecimal subtract(BigDecimal b) | 减法 |
public BigDecimal multiply(BigDecimal b) | 乘法 |
public BigDecimal divide(BigDecimal b) | 除法 |
public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式) | 除法、可以控制精确到小数几位 |
public double doubleValue() | 将BigDecimal转换为double |
//先变成字符串,封装成BigDecimol对象来运算
//BigDecimal a1 = new BigDecimal(Double.toString(a));
//BigDecimal b1 = new BigDecimal(Double.toString(b));
BigDecimal a1 = BigDecimal.valueOf(a);//使用方法使代码更加简洁
BigDecimal b1 = BigDecimal.valueOf(b);
BigDecimal c1 = a1.add(b1);//加法
System.out.println(a1.subtract(b1));//减法
System.out.println(c1);//0.3
System.out.println(a1.multiply(b1));//乘法
System.out.println(a1.divide(b1));//除法
BigDecimal i = BigDecimal.valueOf(0.1);
BigDecimal j = BigDecimal.valueOf(0.3);
BigDecimal k = i.divide(j,2, RoundingMode.HALF_DOWN);
//四舍五入到两位小数
double D = k.doubleValue();
//转换成double类型的数据