1.Math类
Math类提供了一序列基本数学运算和集合函数的方法。
注意:Math类是final类,并且它的所有成员变量和成员方法都是静态的(即可以通过类名调用)
静态变量:PI:圆周率的double值
静态方法:
2.Random类
Random类的对象可以生成”伪随机数“
常用方法:
public int nextInt(int bound):返回0到(bound-1)的一个”伪随机“整数值
public boolean nextBoolean():返回一个”伪随机“的boolean值
3.System类
System类内部包含in、out和err三个成员变量,in代表标准输入流(键盘输入),out标准输出流(显示器)和标准错误输出流(显示器)。
out输出与err输出的区别:标准输出往往是带缓存的,而标准错误输出没有缓存
例如:
public class Err {
public static void main(String[] args){
System.out.println("123");
System.out.println("abc");
System.err.println("标准错误输出");
}
}
输出结果:
或
或
如上结果所示,运行结果不唯一,原因是:System.out.println输出有缓存,System.err.println是立即输出,所以可能在第一个或者第二个还没有输出换行时就输出第三个。
System类的成员方法:
1)public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
参数解释:
src:源数组
srcPos:源数组的起始位置
dest:目标数组
destPos:目标数组的起始位置
length:拷贝的数组元素的个数
2)public static void exit(int status)
该方法是退出程序,其中status的值为0代表正常退出,非零代表异常退出。
3)public static void gc()
该方法的作用是请求系统进行垃圾回收。至于是否立即回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况,垃圾回收时会先调用finalize()方法释放非Java资源
注意:gc()与finalize()
gc()只能清除在堆上分配的内存(纯Java语言的所有对象都在堆上使用new分配内存),而不能清除栈上分配的内存(例如:当Java调用c或c++程序时,使用malloc分配的内存)。这时如果某些对象被分配了栈上的内存,gc()是无法释放这些内存的,对于这样的对象进行内存回收就要靠finalize()了,但要注意的是,即使程序员显式的调用gc也不一定会触发垃圾回收,垃圾回收一般只在内存不够用的时候才触发。
4)public static void currentTimeMillis()
该方法的作用是以毫米为单位返回从1970年1月1日午夜到当前时间的毫秒数
4)RunTime类
使应用程序与其运行的环境相关联,通过使用getRuntime()静态方法获得实例。
public Process exec(String command) throws IOException
import java.io.IOException;
import java.util.Scanner;
public class RuntimeDemo {
public static void main(String[] args) {
Runtime rt= Runtime.getRuntime();
rt.gc(); // 显式请求JVM进行垃圾回收gc
System.out.println("当前JVM的内存总量是:"+rt.totalMemory()+"字节");
System.out.println("JVM试图使用的最大内存量:"+rt.maxMemory());
System.out.println("当前JVM的空闲内存量:"+rt.freeMemory());
try {
rt.exec("notepad"); //打开记事本
rt.exec("calc"); //打开计算器
Process qq=rt.exec("F:\\Program Files (x86)\\Tencent\\QQ\\Bin\\QQ.exe"); // 打开QQ进程
Scanner scan=new Scanner(System.in);
System.out.print("要关闭QQ吗?y/n");
String choice=scan.next();
if("y".equals(choice)){
qq.destroy(); // 销毁进程
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.util.Calendar;
public class CalendarDemo {
public static void main(String[] args) {
Calendar cal=Calendar.getInstance();
System.out.println("第几个月:"+(cal.get(Calendar.MONTH)+1));
System.out.println("当前月的第几天:"+cal.get(Calendar.DAY_OF_MONTH));
System.out.println("星期几:"+cal.get(Calendar.DAY_OF_WEEK));
System.out.println("今年的第几天:"+cal.get(Calendar.DAY_OF_YEAR));
System.out.println("*******************************");
cal.set(1937, 6, 7); // 调整日历set(year,month,date),注意,月是从0开始算的
System.out.println("第几个月:"+(cal.get(Calendar.MONTH)+1));
System.out.println("当前月的第几天:"+cal.get(Calendar.DAY_OF_MONTH));
System.out.println("星期几:"+cal.get(Calendar.DAY_OF_WEEK));
System.out.println("今年的第几天:"+cal.get(Calendar.DAY_OF_YEAR));
}
}