System类:
1.System类的概述:System类包含一些有用的内字段和方法,它不能被实例化创建键盘录入对象
Scanner sc=new Scannner(System.in);
InputStream(字节输入流) is=System.in;//抽象类的多态形式
System.out.ptrintln();输出语句
System.out:标准输出 流返回的是以个打印输出流:PrintStream---->对象:println
System类中的常用方法
public static void gc()运行垃圾回收器,最终调用的是finalize()方法
面试题:(重点)
final,fianlize,finally的区别final:最终的,无法更改的,可以修饰类,成员变量,成员方法
修饰类:该类不能被继承
修饰成员方法:该方法不能被重写
修饰成员变量:该变量是常量,属于自定义常量
finalize:和垃圾回收器有关系,当内存中存在不用的对象的时候,启用gc()运行垃圾回收器去回收对象,释放资源,
最终调用的还是finalize()(在自定义的类中一定要写Object中的方法)
代码:
public class Student {
private int age;
private String name;
public Student() {
super();
}
public Student(int age, String name) {
super();
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student [age=" + age + ", name=" + name + "]";
}
protected void finalize() throws Throwable{
System.out.println("开始进行垃圾回收了"+this);
super.finalize();
}
}
//测试类
public class SystemTest {
public static void main(String[] args) {
Student s=new Student(27,"高圆圆");
System.out.println(s);
s=null;
System.gc();
}
}
2.System类的其他方法
public static void exit(int status):表示终止当前正在运行的Java虚拟机,是非0状态,表示异常终止,一般情况,参数为0
public static long currentTimeMillis()返回以毫秒为单位的当前时间//单独使用非常少,一般用在记录耗时的操作:循环语句
3.System的常用方法
复制数组
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
从指定源数组中复制一个数组,复制从指定位置开始,到目标数组的指定位置结束
代码
import java.util.Arrays;
public class SystemTest2 {
public static void main(String[] args) {
int[] arr={1,32,5,7,8};
int[] arr2={2,45,78,98,34};
System.arraycopy(arr,2,arr2,3, 2);
System.out.println("arr:"+Arrays.toString(arr));
System.out.println("arr2:"+Arrays.toString(arr2));
}
}