system系统类,主要用于获取系统的属性数据和其他操作,构造方法私有的。,用的时候不需要创建对象,他的属性和方法都是静态的,直接用System.就可以直接使用
| 方法名 | 说明 |
| static void arrarcopy(...); | 复制数组 |
| static long currentTimeMillis(); | 获取当前系统时间,返回毫秒值 |
| static void gc(); | 建议JVM赶快启动垃圾回收器回收垃圾 |
| static void exit(int status) | 推出JVM(JAVA虚拟机),若参数是0则表示正常退出JVM,非0则是异常退出JVM。 |
示例
c
其中Object sec时你要从哪个数组当中复制,int strPos复制的数组从哪个位置开始复制,第一个位置是0,Object dest是目标数组,就是你要复制到哪个数组里面,int destPos是你要从哪个位置开始放,int length是复制的长度就是你要复制几个。
Arrays.copyOf(original,newLength)也可以复制数组,system.arraycopy他是本地方法,是没有方法体的,本地方法的方法体是由JVM来实现的,高效,Arrays.copyOf(original,newLength)里用的方法就是Arrays.copyOf(original,newLength)方法。
System.currentTimillis()方法用来计时,可以用来计算代码的用时。单位是毫秒。
System.gc();只是告诉垃圾回收器回收垃圾,回不回收是不确定的。想知道有没有被回收,就把对象改成不被引用,即例如 GC gc=new GC("fanfan",25);这样的例子全改为new GC("fan",25);这样的例子,即,使它们不被引用,就会被回收。
退出·JVM
System.exit(0);就是正常退出,括号里为非0就是不正常退出
垃圾回收
public class GC {
private String name;
private int age;
//创建一个带参的构造方法
public GC(String name, int age) {
this.name = name;
this.age = age;
}
public GC() {
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "GC{" + "name='" + name + ''' + ", age=" + age + '}';
}
@Override
protected void finalize() throws Throwable {
super.finalize();
System.out.println("回收了"+name+" "+age);
}
}
示例
public class systemLei {
public static void main(String[] args) {
//arraycopy数组的复制
int[] arr1={59,45,87,48,87,45,34,84,45};
int[] arr2=new int[8];
System.arraycopy(arr1,0,arr2,0,arr2.length);
//复制arr1的第0个位置到arr2中,从arr2的第0个位置开始放起,复制8个数
//开始计时
long start=System.currentTimeMillis();
for (int i = 0; i < arr2.length; i++) {
System.out.println(arr2[i]);
}
//回收垃圾
long end=System.currentTimeMillis();
//计时结束
System.out.println(end-start);
new GC("fanfan",18);
new GC("fanfanfan",18);
new GC("fanfanfanfan",18);
System.gc();
System.exit(0);//0是正常结束,只要是非0就是不正常结束
System.out.println("程序结束了");//其实不会执行这句话,因为在执行完上一代码时,JVM就已经正常结束了
}
}



