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