专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

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

1、System类

(1)函数

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

35_1.png

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

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

}
}

35_2.png

可用于时间测量:

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

35_3.png

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

35_4.png

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

    }
}

35_5.png

(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

35_6.png

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

35_7.png

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

35_8.png

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

35_9.png

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

35_10.png

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

35_11.png

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

35_12.png

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

35_13.png

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

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

35_14.png

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

35_15.png

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

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

文章永久链接:https://tech.souyunku.com/22658

未经允许不得转载:搜云库技术团队 » System类、Math类、Arrays类、BigInteger类、BigDecimal类

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们