1.Math
定义:Math是一个帮助我们用于数学计算的工具类哦
- Math.abs();取绝对值
- Math.ceil();向上取整
- Math.floor();向下取整
- Math.round();四舍五入
- Math.max();取两个数中的较大数
- Math.pow();返回a的b次幂
- Math.random();随机返回[0.0,1.0)中的一个数
abs
abs有bug:就是,负数如果没有对应的正数,则代码会出错,以int为例子,它的取值范围是-2147483648 ~ 2147483647,如果我们输入-2147483648没有正数与之对应,所有abs结果产生bug
System.out.println(Math.abs(-2147483648))
结果如上图,无法输出相应的绝对值,所以要使用有正数与之相对应的负数。
public class math {
public static void main(String[] args) {
//所以方法全是静态,直接Math.调用即可
//1. abs 获取参数的绝对值
int a = -2147483648;
Math.abs(a);
System.out.println(Math.abs(a));
//2. ceil 向上取整
double b =2.45;
System.out.println(Math.ceil(b));
//3. floor 向下取整(也叫去尾法)
double c = 3.55;
System.out.println(Math.floor(c));
//4. round 四舍五入
double d = 3.59;
double e = 3.44;
System.out.println(Math.round(d));
System.out.println(Math.round(e));
//5. max/min 比大小
System.out.println(Math.max(d,e));
System.out.println(Math.min(d,e));
//6. pow 获取a的b次幂
int p = 4;
int m = 2;
System.out.println(Math.pow(p,m));
//7. sqrt 开平方
System.out.println(Math.sqrt(4.0));
//8. random 获取0~1的随机数,不包括1,不常用
System.out.println(Math.random());
}
}
2.System
public class system {
public static void main(String[] args) {
//方法的形参,里面是一个状态码:0:,非0:
//0:表示虚拟机正常停止
//非0:表示虚拟机异常停止
//System.exit(0);
//System.out.println("我执行了没有");
long l = System.currentTimeMillis();
System.out.println(l);
//在开头设置一个
//结尾设置一个,最后输出结尾减开头得到执行完代码花费的毫秒时间
//arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数)数组拷贝
//细节:如果数据源数组和目的地属猪都是基本数据类型,那么两者的类型必须保持一致,否则会报错
//也就是说int的数组不能拷贝到double的数组当中
//长度不能越界
//还有,如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类
//就是要多态,然后后面强转就行
int arr1[] = {1,2,3,4,5,6,7,8,9,10};
int arr2[] = new int[10];
System.arraycopy(arr1,6,arr2,2,3);
for (int i = 0; i < arr2.length; i++) {
System.out.println(arr2[i]);
}
}
}
结果如上图
3.Runtime
public class runtime111 {
public static void main(String[] args) throws IOException {
//Runtime表示虚拟机的运行环境,它不是静态的
//获取到它的对象runtime对象
Runtime r1 = Runtime.getRuntime();
Runtime r2 = Runtime.getRuntime();
System.out.println(r1 == r2);//true 表示是同一个对象,因为地址值相同
//exit停止虚拟机
//r1.exit(0);
//availableProcessors是用来获取你电脑cpu的线程数的
r1.availableProcessors();
System.out.println(r1.availableProcessors());
//总内存大小,单位为byte字节,maxmemory
System.out.println(r1.maxMemory()/1024/1024);
//已经获取的总内存大小,单位byte字节 totalmemory
System.out.println(r1.totalMemory()/1024/1024);
//剩余内存大小,单位byte字节freememory
System.out.println(r1.freeMemory()/1024/1024);
//运行cmd命令
//shutdown : 关机 加上参数才能执行
//-s:默认一分钟关机
//-s -t 指定时间(秒):指定关机时间
//-a:取消关机操作
//-r:关机并重启
r1.exec("shutdown -a");
}
}