Java System、Arrays、Math、BigInteger、BigDecimal

本文深入探讨了Java中五个关键的工具类:System类、Arrays类、Math类、BigInteger类和BigDecimal类的功能与用法。从系统时间获取、垃圾回收到数组排序、数学运算,再到大数运算的实现细节,提供了丰富的示例代码。

目录

一、System类: 系统属性信息工具类

二、Arrays类:数组操作工具类

三、Math类:数学运算工具类

四、BigInteger: 大数运算类

五、BigDecimal 浮点大数运算类


一、System类: 系统属性信息工具类

  1. public static long currentTimeMillis():获取当前系统时间与1970年01月01日00:00点之间的毫秒差值
  2. public static void exit(int status):用来结束正在运行的Java程序。参数传入一个数字即可。通常传入0记为正常状态,其他为异常状态
  3. public static void gc():用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。
  4. public static String getProperties():用来获取指系统属性信息
/*
	 * System类练习
	 */
	public static void function1(){
		long second1 = System.currentTimeMillis();//返回当前的时间
		
		for (int i = 0; i < 10000; i++) {
			for (int j = 0; j < 2; j++) {
				System.out.println(i);
			}
		}
		long second2 = System.currentTimeMillis(); //返回循环执行后的时间
		System.out.println(second2 -second1);
		
		System.gc();//垃圾回收
		System.exit(0);//退出虚拟机,下面的循环不在打印
		for (int i = 0; i < 1000; i++) {
			System.out.println("测试");
		}
	}

二、Arrays类:数组操作工具类

  1. public static void sort方法,用来对指定数组中的元素进行排序(元素值从小到大进行排序)
  2. public static String toString方法,用来返回指定数组元素内容的字符串形式
  3. public static void binarySearch方法,在指定数组中,查找给定元素值出现的位置。若没有查询到,返回位置为-插入点-1。要求该数组必须是个有序的数组
/*
	 * Array 数组工具类,包含了数组的操作
	 */
	public static void function3(){
		
		int[] arr = {15,37,91,2,81,27,9};
		//升序排列
		Arrays.sort(arr);
		System.out.println(Arrays.toString(arr));
		//二分查找,返回下标
		int index =Arrays.binarySearch(arr, 37);
		System.out.println(index);
		//toString(),将数组转换成String
		String arrString  = Arrays.toString(arr);
		System.out.println(arrString);
		
	}

三、Math类:数学运算工具类

  1. abs方法,结果都为正数
  2. ceil方法,结果为比参数值大的最小整数的double值
  3. floor方法,结果为比参数值小的最大整数的double值
  4. max方法,返回两个参数值中较大的值
  5. min方法,返回两个参数值中较小的值
  6. pow方法,返回第一个参数的第二个参数次幂的值
  7. round方法,返回参数值四舍五入的结果
  8. random方法,产生一个大于等于0.0且小于1.0的double小数
  9. /*
    	 * Math类
    	 */
    	public static void function2(){
    		//返回参数的绝对值
    		int ina = Math.abs(-2);
    		System.out.println("ina:"+ina);
    		//参数向上取整数
    		double dc =Math.ceil(5.4);
    		System.out.println("dc:"+dc);
    		//参数向下取整
    		double df = Math.floor(5.4);
    		System.out.println("df:"+df);
    		//返回参数四舍五入的平方根
    		double ds = Math.sqrt(5);
    		System.out.println("ds:"+ds);
    		//返回参数的四舍五入的值
    		long lr = Math.round(5.4);//舍
    		System.out.println("lr:"+lr);
    		long lr1 = Math.round(5.5);//入
    		System.out.println("lr1:"+lr1);
    		
    	}

四、BigInteger: 大数运算类

/*
	 * BigInteger,将超过long范围的数值使用BigInteger包装
	 */
	public static void function4(){
		//long num = 6859376293276046527654823651974092573597;//超过long的范围,报错
		//初始化 推荐使用参数为String 类型的
		BigInteger bigNum1 = new BigInteger("6859376293276046527654823651974092573597");
		BigInteger bigNum2 = new BigInteger("11");
		//加
		BigInteger addResult = bigNum1.add(bigNum2);
		System.out.println(addResult);
		//减
		BigInteger subResult = bigNum1.subtract(bigNum2);
		System.out.println(subResult);
		//乘
		BigInteger multResult = bigNum1.multiply(new BigInteger("2"));
		System.out.println(multResult);
		//除
		BigInteger divResult = bigNum1.divide(new BigInteger("1"));
		System.out.println(divResult);
		
	}

五、BigDecimal 浮点大数运算类

/*
	 * BigDecimal 浮点数高精度运算
	 */
	public static void  function5(){
		//结果为0.09999999999999999,,是因为计算机存储浮点数不精确造成的
		System.out.println("0.09+0.01 = "+(0.09+0.01));    
//		BigDecimal 构造函数参数推荐使用String类型
		BigDecimal bigDecimalNum1 = new BigDecimal("0.99999999999");
		BigDecimal bigDecimalNum2 = new BigDecimal("0.00000000001");
		//加
		BigDecimal addReuslt = bigDecimalNum1.add(bigDecimalNum2);
		System.out.println(addReuslt);
		//减
		BigDecimal subResult= bigDecimalNum1.subtract(bigDecimalNum2);
		System.out.println(subResult);
		//乘
		BigDecimal multResult = bigDecimalNum1.multiply(new BigDecimal("1"));
		System.out.println(multResult);
		//除
		BigDecimal  divResult = bigDecimalNum1.divide(new BigDecimal("2"));
		System.out.println(divResult);
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值