1、System类

(1)函数

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

System类、Math类、Arrays类、BigInteger类、BigDecimal类_eclipse

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

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

}
}

System类、Math类、Arrays类、BigInteger类、BigDecimal类_java_02

可用于时间测量:

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)+"毫秒。");
    }
}

System类、Math类、Arrays类、BigInteger类、BigDecimal类_数组_03

 (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类、Math类、Arrays类、BigInteger类、BigDecimal类_jar_04

 由运行结果可知,在执行了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();

    }
}

System类、Math类、Arrays类、BigInteger类、BigDecimal类_sql_05

提醒或告诉虚拟机,希望进行一次垃圾回收,至于什么时候进行回收取决于虚拟机,而且也不能保证一定进行回收

(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)\Eclipse\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\bin, 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:\Workspaces\MyEclipse 10\System类, java.runtime.version=1.6.0_13-b03, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=D:\Program Files (x86)\Eclipse\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\endorsed, os.arch=amd64, java.io.tmpdir=C:\Users\zhai\AppData\Local\Temp\, 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)\Eclipse\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;"C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\SysWOW64;D:\Program Files (x86)\apache-tomcat-9.0.10\lib;D:\Program Files (x86)\apache-tomcat-9.0.10\bin;D:\Program Files (x86)\Eclipse\Jdk;D:\Program Files (x86)\Eclipse\Jdk\jre";C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:\Program Files (x86)\Sql Server2008\sql  server\100\Tools\Binn\;D:\Program Files (x86)\Sql Server2008\100\Tools\Binn\;D:\Program Files (x86)\Sql Server2008\100\DTS\Binn\;D:\Program Files (x86)\Sql Server2008\sql  server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;D:\Program Files (x86)\Sql Server2008\sql  server\100\DTS\Binn\;D:\Program Files (x86)\Eclipse\Jdk\bin;D:\Program Files (x86)\mysql\bin;"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:\Workspaces\MyEclipse 10\System类\bin, user.name=zhai, java.vm.specification.version=1.0, java.home=D:\Program Files (x86)\Eclipse\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre, 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)\Eclipse\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\ext;C:\Windows\Sun\Java\lib\ext, sun.boot.class.path=D:\Program Files (x86)\Eclipse\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\resources.jar;D:\Program Files (x86)\Eclipse\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\rt.jar;D:\Program Files (x86)\Eclipse\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\sunrsasign.jar;D:\Program Files (x86)\Eclipse\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\jsse.jar;D:\Program Files (x86)\Eclipse\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\jce.jar;D:\Program Files (x86)\Eclipse\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\charsets.jar;D:\Program Files (x86)\Eclipse\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\classes, 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

System类、Math类、Arrays类、BigInteger类、BigDecimal类_eclipse_06

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]);
    }
}
}

System类、Math类、Arrays类、BigInteger类、BigDecimal类_数组_07

 

 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));

    }
}

System类、Math类、Arrays类、BigInteger类、BigDecimal类_eclipse_08

 

 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]+"   ");
    }
}

System类、Math类、Arrays类、BigInteger类、BigDecimal类_数组_09

 (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));
    }
}

System类、Math类、Arrays类、BigInteger类、BigDecimal类_数组_10

 (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);
    }
}

System类、Math类、Arrays类、BigInteger类、BigDecimal类_eclipse_11

 如果不存在则返回-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));
    }
}

System类、Math类、Arrays类、BigInteger类、BigDecimal类_数组_12

 如果两个数组彼此相等则返回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]);
    }
}

System类、Math类、Arrays类、BigInteger类、BigDecimal类_sql_13

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

 

 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);

    }
}

System类、Math类、Arrays类、BigInteger类、BigDecimal类_eclipse_14

 

 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,但实际的运行结果是:

System类、Math类、Arrays类、BigInteger类、BigDecimal类_jar_15

 利用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。

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

 

每个人都会有一段异常艰难的时光 。 生活的压力 , 工作的失意 , 学业的压力。 爱的惶惶不可终日。 挺过来的 ,人生就会豁然开朗。 挺不过来的 ,时间也会教你 ,怎么与它们握手言和 ,所以不必害怕的。 ——杨绛