zoukankan      html  css  js  c++  java
  • System类、Math类、Arrays类、BigInteger类、BigDecimal类

    1、System类

    (1)函数

    System类:提供了一些系统属性信息和系统操作。

    (2)currentTimeMillis()     获取当前系统时间,为毫秒值。

    public class SystemDemo {
    public static void main(String[] args) {
        System.out.println("当前系统的毫秒值为:"+System.currentTimeMillis());
    
    }
    }

    可用于时间测量:

    public class TimeDemo{
        public static void main(String[] args){
            long startTime=System.currentTimeMillis();
            int a = 0;
            for(long i=0;i<999999999;i++){
            a++;;
            }
            long endTime=System.currentTimeMillis();
            System.out.println("执行此程序用了"+(endTime-startTime)+"毫秒。");
        }
    }

     (3)exit(int status)

    参数传入一个数字即可,通常记为传入0为正常状态,其他为异常状态。

    public class ExitDemo {
        public static void main(String[] args) {
            for (int i = 0; i <= 99; i++) {
                if (i < 9)
                    System.out.println(i);
                else
                    System.exit(0);
    
            }
            System.out.println("System类");
        }
    }

     由运行结果可知,在执行了System.exit(0);后,程序直接结束运行,没有去运行后面的 System.out.println("System类");语句。

    (4)gc();

    运行JVM中的垃圾回收器。

    class Person {
        public void finalize() { // 清除垃圾时,会默认调用被清空对象的finalize方法。
            System.out.println("垃圾已经被收取啦!");
        }
    }
    public class PersonTest {
        public static void main(String[] args) {
            new Person();
            new Person();
            new Person();
            new Person();
            new Person();
            new Person();
            new Person();
            System.gc();
    
        }
    }

    (5)getProperties():

    public class GetPropertiesDemo {
        public static void main(String[] args) {
            System.out.println(System.getProperties());
        }
    }
    {java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=D:Program Files (x86)EclipseMyEclipseCommoninarycom.sun.java.jdk.win32.x86_64_1.6.0.013jrein, java.vm.version=11.3-b02, java.vm.vendor=Sun Microsystems Inc., java.vendor.url=http://java.sun.com/, path.separator=;, java.vm.name=Java HotSpot(TM) 64-Bit Server VM, file.encoding.pkg=sun.io, sun.java.launcher=SUN_STANDARD, user.country=CN, sun.os.patch.level=, java.vm.specification.name=Java Virtual Machine Specification, user.dir=D:WorkspacesMyEclipse 10System类, java.runtime.version=1.6.0_13-b03, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=D:Program Files (x86)EclipseMyEclipseCommoninarycom.sun.java.jdk.win32.x86_64_1.6.0.013jrelibendorsed, os.arch=amd64, java.io.tmpdir=C:UserszhaiAppDataLocalTemp\, line.separator=
    , java.vm.specification.vendor=Sun Microsystems Inc., user.variant=, os.name=Windows Vista, sun.jnu.encoding=GBK, java.library.path=D:Program Files (x86)EclipseMyEclipseCommoninarycom.sun.java.jdk.win32.x86_64_1.6.0.013in;.;C:WindowsSunJavain;C:Windowssystem32;C:Windows;C:Program Files (x86)Common FilesOracleJavajavapath;"C:Program Files (x86)Common FilesOracleJavajavapath;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSysWOW64;D:Program Files (x86)apache-tomcat-9.0.10lib;D:Program Files (x86)apache-tomcat-9.0.10in;D:Program Files (x86)EclipseJdk;D:Program Files (x86)EclipseJdkjre";C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:WindowsSystem32OpenSSH;D:Program Files (x86)Sql Server2008sql  server100ToolsBinn;D:Program Files (x86)Sql Server2008100ToolsBinn;D:Program Files (x86)Sql Server2008100DTSBinn;D:Program Files (x86)Sql Server2008sql  server100ToolsBinnVSShellCommon7IDE;C:Program Files (x86)Microsoft Visual Studio 9.0Common7IDEPrivateAssemblies;D:Program Files (x86)Sql Server2008sql  server100DTSBinn;D:Program Files (x86)EclipseJdkin;D:Program Files (x86)mysqlin;"SystemRoot%System32;C:WindowsSystem32WindowsPowerShellv1.0";, java.specification.name=Java Platform API Specification, java.class.version=50.0, sun.management.compiler=HotSpot 64-Bit Server Compiler, os.version=6.2, user.home=D:, user.timezone=, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=GBK, java.specification.version=1.6, java.class.path=D:WorkspacesMyEclipse 10System类in, user.name=zhai, java.vm.specification.version=1.0, java.home=D:Program Files (x86)EclipseMyEclipseCommoninarycom.sun.java.jdk.win32.x86_64_1.6.0.013jre, sun.arch.data.model=64, user.language=zh, java.specification.vendor=Sun Microsystems Inc., awt.toolkit=sun.awt.windows.WToolkit, java.vm.info=mixed mode, java.version=1.6.0_13, java.ext.dirs=D:Program Files (x86)EclipseMyEclipseCommoninarycom.sun.java.jdk.win32.x86_64_1.6.0.013jrelibext;C:WindowsSunJavalibext, sun.boot.class.path=D:Program Files (x86)EclipseMyEclipseCommoninarycom.sun.java.jdk.win32.x86_64_1.6.0.013jrelib
    esources.jar;D:Program Files (x86)EclipseMyEclipseCommoninarycom.sun.java.jdk.win32.x86_64_1.6.0.013jrelib
    t.jar;D:Program Files (x86)EclipseMyEclipseCommoninarycom.sun.java.jdk.win32.x86_64_1.6.0.013jrelibsunrsasign.jar;D:Program Files (x86)EclipseMyEclipseCommoninarycom.sun.java.jdk.win32.x86_64_1.6.0.013jrelibjsse.jar;D:Program Files (x86)EclipseMyEclipseCommoninarycom.sun.java.jdk.win32.x86_64_1.6.0.013jrelibjce.jar;D:Program Files (x86)EclipseMyEclipseCommoninarycom.sun.java.jdk.win32.x86_64_1.6.0.013jrelibcharsets.jar;D:Program Files (x86)EclipseMyEclipseCommoninarycom.sun.java.jdk.win32.x86_64_1.6.0.013jreclasses, java.vendor=Sun Microsystems Inc., file.separator=\, java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, sun.desktop=windows, sun.cpu.isalist=amd64}

    (6)arraycopy

    src:源数组名

    srcPos:要复制的源数组的起始位置

    dest:目标数组名

    destPos:目标数组的起始位置

    length:复制的元素的个数

    将数组a中的第二个元素,复制到数组b的最后一个位置。

    public class ArrayCopyDemo {
    public static void main(String[] args) {
        int [] a=new int[]{1,2,3,4,5,6};
        int [] b=new int[]{1,2,3,4,5,6,6,6,6,6};
        System.arraycopy(a, 1, b, 9, 1);
        for(int i=0;i<b.length;i++){
        System.out.print(b[i]);
        }
    }
    }

     2、Math类

    Math类Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。其中所有的方法均为静态方法,直接类名调用。

    public class MathDemo {
        public static void main(String[] args) {
            System.out.println("-12的绝对值为:" + Math.abs(-12));
            System.out.println("0.2的反余弦值为:" + Math.acos(0.2));
            System.out.println("27的立方根为:" + Math.cbrt(27));
            System.out.println("pi/3的余弦值为:" + Math.cos(Math.PI / 3));
            System.out.println("5和3的较大值为:" + Math.max(5, 3));
            System.out.println("pi的值为:" + Math.PI);// 较精确
            System.out.println("4的平方根为:" + Math.sqrt(4));
    
        }
    }

     3、Arrays类

    Arrays类:操作数组的方法。

    (1)sort方法,对数组中的数字进行升序排列。

    import java.util.Arrays;
    
    public class SortDemo {
        public static void main(String[] args) {
            int[] b = new int[] { 12, 92, 33, 4, 5, 26, 69, 62, 69, 26 };
            Arrays.sort(b);
            for(int i=0;i<b.length;i++)
            System.out.print(b[i]+"   ");
        }
    }

     (2)toString

    返回指定数组内容的字符串表示形式。

    import java.util.Arrays;
    
    public class ToStringDemo {
        public static void main(String[] args) {
            int[] b = new int[] { 12, 92, 33, 4, 5, 26, 69, 62, 69, 26 };
            System.out.println(Arrays.toString(b));
        }
    }

     (3)binarySearch 

    使用二分搜索法来搜索指定的类型的数组,以获得指定的值。

    import java.util.Arrays;
    
    public class BinarySearchDemo {
        public static void main(String[] args) {
            int[] b = new int[] { 12, 92, 33, 4, 5, 26, 69, 62, 69, 26 };
            int num = Arrays.binarySearch(b, 12);
            System.out.println(num);
            int num1 = Arrays.binarySearch(b, 1);
            System.out.println(num1);
        }
    }

     如果不存在则返回-1.

    (4)equals

    import java.util.Arrays;
    
    public class EqualsDemo {
        public static void main(String[] args) {
            int[] a = new int[] { 12, 92, 33, 4, 5, 26, 69, 62, 69, 26 };
            int[] b = new int[] { 12, 92, 33, 4, 5, 26, 69, 62, 69, 26 };
            int[] c = new int[] { 112, 92, 33, 4, 5, 26, 69, 62, 69, 26 };
            System.out.println(Arrays.equals(a, b));
            System.out.println(Arrays.equals(c, b));
        }
    }

     如果两个数组彼此相等则返回true,否则返回false。

    (5)copyOfRange(数据类型[] original, int from, int to)

    将指定数组的指定范围复制到一个新数组。

    import java.util.Arrays;
    
    public class CopyDemo {
        public static void main(String[] args) {
            int[] a = new int[] { 12, 92, 33, 4, 5, 26, 69, 62, 69, 26 };
            int[] b = Arrays.copyOfRange(a, 0, 2);
            for (int i = 0; i < b.length; i++)
                System.out.println(b[i]);
        }
    }

     包含头,不包含尾。将元素复制到一个新的数组。

     4、BigInteger类

    BigInteger类:对于数据的值已经超过了long型,四则运算可以通过方法来实现。

    import java.math.BigInteger;
    
    public class BigIntegerDemo {
        public static void main(String[] args) {
            // 封装为BigInteger对象
            BigInteger big1 = new BigInteger("111111111111112222");
            BigInteger big2 = new BigInteger("444444444444444444");
            // add实现加法运算
            BigInteger bigAdd = big1.add(big2);
            System.out.println(bigAdd);
            // subtract实现减法运算
            BigInteger bigSub = big1.subtract(big2);
            System.out.println(bigSub);
            // multiply实现乘法运算
            BigInteger bigMul = big1.multiply(big2);
            System.out.println(bigMul);
            // divide实现除法运算
            BigInteger bigDiv = big2.divide(big1);
            System.out.println(bigDiv);
    
        }
    }

     5、BigDecimal类

    BigDecimal类主要是解决实际运用中,浮点数计算的不精确问题。

    例如:

    public class AddDemo {
    public static void main(String[] args) {
        System.out.println(0.01+0.09);
        System.out.println(1.00-0.32);
    }
    }

    计算结果本应该是:0.1和0.68,但实际的运行结果是:

     利用BigDecimal类,将数字封装为对象,利用类中的方法进行计算,问题可以得到解决。

    import java.math.BigDecimal;
    
    public class AddDemo {
        public static void main(String[] args) {
            BigDecimal big1 = new BigDecimal("0.09");
            BigDecimal big2 = new BigDecimal("0.01");
            System.out.println(big1.add(big2));
    
        }
    }

    程序的运行结果为0.1。

     在除法运算中,对于无限不循环小数的问题,要选择适当的佘入模式,对小数进行保留。

  • 相关阅读:
    leetcode10 正则表达式匹配 dp
    AS技巧合集「调试技巧篇」
    AS技巧合集「编码技巧篇」
    AS技巧合集「常用技巧篇」
    Android studio:Groovy 与 Gradle 基础【三】
    Android Studio :Android Studio 与 Gradle 深入【二】
    Android studio:从Eclipse迁移到Android Studio【一】
    Anroid Studio入门
    54. Android中adb常用命令及应用常用目录
    53. Android常用工具类
  • 原文地址:https://www.cnblogs.com/zhai1997/p/11352490.html
Copyright © 2011-2022 走看看