Java之System、Math、Arrays、BigInteger、BigDecimal类

1.System类
1.1    概念
在API中System类介绍的比较简单,我们给出定义,System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作。
System类不能手动创建对象,因为构造方法被private修饰,阻止外界创建对象。System类中的都是static方法,类名访问即可。在JDK中,有许多这样的类。
1.2    常用方法
    currentTimeMillis()    获取当前系统时间与1970年01月01日00:00点之间的毫秒差值
    exit(int status) 用来结束正在运行的Java程序。参数传入一个数字即可。通常传入0记为正常状态,其他为异常状态
    gc() 用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。
    getProperty(String key) 用来获取指定键(字符串名称)中所记录的系统属性信息。

        arraycopy方法,用来实现将源数组部分元素复制到目标数组的指定位置。

       copyOf(origin,newLength) 数组的扩容,返回新数组,将origin数组扩容至newLength长度 ,如果新数组长度不够原数组长,不会报异常,会舍弃多余的元素 

Math类
2.1    概念
Math 类是包含用于执行基本数学运算的方法的数学工具类,如初等指数、对数、平方根和三角函数。
类似这样的工具类,其所有方法均为静态方法,并且一般不会创建对象。如System类

2.2    常用方法
    abs方法,结果都为正数
double d1 = Math.abs(-5); // d1的值为5
double d2 = Math.abs(5); // d2的值为5
    ceil方法,结果为比参数值大的最小整数的double值
double d1 = Math.ceil(3.3); //d1的值为 4.0
double d2 = Math.ceil(-3.3); //d2的值为 -3.0
double d3 = Math.ceil(5.1); // d3的值为 6.0
    floor方法,结果为比参数值小的最大整数的double值
double d1 = Math.floor(3.3); //d1的值为3.0
double d2 = Math.floor(-3.3); //d2的值为-4.0
double d3 = Math.floor(5.1); //d3的值为 5.0
    max方法,返回两个参数值中较大的值
double d1 = Math.max(3.3, 5.5); //d1的值为5.5
double d2 = Math.max(-3.3, -5.5); //d2的值为-3.3
    min方法,返回两个参数值中较小的值
double d1 = Math.min(3.3, 5.5); //d1的值为3.3
double d2 = Math.max(-3.3, -5.5); //d2的值为-5.5
    pow方法,返回第一个参数的第二个参数次幂的值
double d1 = Math.pow(2.0, 3.0); //d1的值为 8.0
double d2 = Math.pow(3.0, 3.0); //d2的值为27.0
    round方法,返回参数值四舍五入的结果
double d1 = Math.round(5.5); //d1的值为6.0
double d2 = Math.round(5.4); //d2的值为5.0
    random方法,产生一个大于等于0.0且小于1.0的double小数
double d1 = Math.random();

3.Arrays类
3.1    概念
此类包含用来操作数组(比如排序和搜索)的各种方法。需要注意,如果指定数组引用为 null,则访问此类中的方法都会抛出空指针异常NullPointerException。
3.2    常用方法
 Arrays.sort(arr);//排序

Arrays.binarySearch( , );//二分搜索法,需先排序,返回索引

public class Demo01 {
	@Test
	public void test() {
		int[] arr= {3,2,1,6,5,4,7,9,8};
		Arrays.sort(arr);
		System.out.println(Arrays.toString(arr));
		int index=Arrays.binarySearch(arr, 1);
		System.out.println(index);
	}
	
}


第4章    运算
4.1    BigInteger
  java中long型为最大整数类型,对于超过long型的数据如何去表示呢.在Java的世界中,超过long型的整数已经不能被称为整数了,它们被封装成BigInteger对象.在BigInteger类中,实现四则运算都是方法来实现,并不是采用运算符.
  BigInteger类的构造方法:

4.2    BigDecimal         可以 解决double计算精度丧失的问题

  在程序中执行下列代码,会出现什么问题?
    System.out.println(0.09 + 0.01);
    System.out.println(1.0 - 0.32);
    System.out.println(1.015 * 100);
    System.out.println(1.301 / 100);
 double和float类型在运算中很容易丢失精度,造成数据的不准确性,Java提供我们BigDecimal类可以实现浮点数据的高精度运算
   构造方法如下:
  建议浮点数据以字符串形式给出,因为参数结果是可以预知的
  实现加法减法乘法代码如下: 
    public static void main(String[] args) {
          //大数据封装为BigDecimal对象
          BigDecimal big1 = new BigDecimal("0.09");
          BigDecimal big2 = new BigDecimal("0.01");
          //add实现加法运算
          BigDecimal bigAdd = big1.add(big2);
          
          BigDecimal big3 = new BigDecimal("1.0");
          BigDecimal big4 = new BigDecimal("0.32");
          //subtract实现减法运算
          BigDecimal bigSub = big3.subtract(big4);
          
          BigDecimal big5 = new BigDecimal("1.105");
          BigDecimal big6 = new BigDecimal("100");
          //multiply实现乘法运算
          BigDecimal bigMul = big5.multiply(big6);
  对于浮点数据的除法运算,和整数不同,可能出现无限不循环小数,因此需要对所需要的位数进行保留和选择舍入模式。

猜你喜欢

转载自blog.csdn.net/qq_34361514/article/details/81623710