System类,Math类,Arrays类,大数据运算

System类:

    exit用法:

      public static void main(String[] args) {
                      获取当前系统时间毫秒值
                      long time = System.currentTimeMillis();
                      System.out.println(time);
                      中止正在运行的java虚拟机
                       for(int i=1;i<100;i++){
                      System.out.println(i);
                      if(i==50){
                      System.exit(0);
                      }
                      }

    gc()垃圾回收机制:

  • finalize 方法在 GC(垃圾回收器)决定回收一个不被其他对象引用的对象时调用。子类覆写 finalize 方法来处置系统资源或是负责清除操作。

  • finalizer 方法的调用时机由 sun 和 JVM 开发商共同决定:确定不再有任何未死亡的线程通过任何方法调用来访问或使用该对象时。(即确定对象的任何方法都不(再)会被调用时,调用其 finalize 方法)

  • 除非一些其他的已经准备好被终止的对象或类将调用 finalize 方法包括在其终止动作之中。(即调用对象的 finalize 方法,此时该对象的 finalize 方法将是最后被调用的方法,在这之后,对象的任何方法都不(再)会被调用。

  • finalize 方法中可以执行任何操作,包括再次使该对象可用于其它线程(重新初始化);但是,finalize 的通常目的是在对象(一定)不再被需要时(对象将被丢弃)之前执行清除操作。例如,表示输入/输出连接的对象的 finalize 方法可能会在对象被永久丢弃之前执行显式 I/O 事务来中断连接。

  • Object 类没有提供 finalize 方法的实现,导出类可以按需覆写该方法。

  • java 不对任何对象的 finalize 方法调用发生的线程做限制,即任何线程都可以调用对象的 finalize 方法,然而,调用 finalize 方法的线程将不能持有任何用户可见的线程同步锁。当 finalize 方法被调用时,如果 finalize 方法抛出异常,且异常未被捕获时,异常将被忽略,finalize 方法将中止。

  • 当对象的 finalize 方法被调用后,不会再有基于该对象的方法调用,直到 JVM 再次进行回收动作时该对象将被释放,占用的内存将被回收。

  • 任何对象的 finalize 方法只会被 JVM 调用一次。

  • finalize()方法引发的任何异常都会导致该对象的终止被暂停,否则被忽略。

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

     

            public static void main(String[] args) {
                                         String arr[]={"a","b","c","d"};
                                        String brr[]=new String[6];
                                        System.arraycopy(arr, 1, brr, 2, 3);
                                         for(int i=0;i<brr.length;i++){
                                         System.out.println(brr[i]);
                                            }
                                         }

 Math类:

    Math 类是包含用于执行基本数学运算的方法的数学工具类,其所有方法均为静态方法,并且一般不会创建对象。

    用法:  

          public static void main(String[] args) {
             //获取绝对值
                          System.out.println(Math.abs(-12));
                          //向上取整
                          System.out.println(Math.ceil(12.1));
                         //向下取整
                          System.out.println(Math.floor(12.9));
                          //求最大值
                          System.out.println(Math.max(12.9,12.1));
                          //求最小值
                           System.out.println(Math.min(12.9,12.1));
                          //求次幂
                         System.out.println((int)Math.pow(2,10));
                         //求0-1之间的随即小数
                         System.out.println(Math.random());
                        //四舍五入
                        System.out.println(Math.round(12.5));
                         }

Arrays类:

    此类包含用来操作数组(比如排序和搜索)的各种方法。

        public static void main(String[] args) {
                   int arr[]={4,95,113,33,7,2,55,44,333};
                   //数组排序
                    Arrays.sort(arr);
                   //打印数组
                   System.out.println(Arrays.toString(arr));
                   //根据元素查找指定下标
                   //如果该元素不存在,那么返回该元素应该在的下标的负数减1
                    int index=Arrays.binarySearch(arr,33);
                    System.out.println(index);
                   }

大数据运算:

    BigInteger类:

         超过long的整数,被封装成BigInteger对象。

         public static void main(String[] args) {
                      BigInteger b1 = new BigInteger("100000000000000000000000000");
                      BigInteger b2 = new BigInteger("900000000000000000000000000");
                      // 加法
            System.out.println(b1.add(b2));
            // 减法
            System.out.println(b2.subtract(b1));
            // 乘法
            System.out.println(b2.multiply(b1));
            // 除法
            .out.println(b2.divide(b1));
        }

    BigDecimal类:  

        可以实现浮点数据的高精度运算。

            public static void main(String[] args) {
               BigDecimal b1=new BigDecimal("0.09");
                 BigDecimal b2=new BigDecimal("0.01");
                 // 加法
              System.out.println(b1.add(b2));
                 // 减法
             BigDecimal b3=new BigDecimal("1.0");
             BigDecimal b4=new BigDecimal("0.32");
                  System.out.println(b3.subtract(b4));
                  // 乘法
            BigDecimal b5=new BigDecimal("1.015");
              BigDecimal b6=new BigDecimal("100");
                 System.out.println(b5.multiply(b6));
                   // 除法
                BigDecimal b7=new BigDecimal("1.301");
                BigDecimal b8=new BigDecimal("100");
                System.out.println(b7.divide(b8));
            }

        

原文地址:https://www.cnblogs.com/maxuefeng/p/13793409.html