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