Java API —— System类

1、System类概述

System 类包含一些有用的类字段和方法。它不能被实例化。

2、成员方法

public static void gc():运行垃圾回收器

System.gc()可用于垃圾回收。当使用System.gc()回收某个对象所占用的内存之前,通过要求程序调用适当的方法来清理资源。在没有明确指定资源清理的情况下,Java提高了默认机制来清理该对象的资源,就是调用Object类的finalize()方法。finalize()方法的作用是释放一个对象占用的内存空间时,会被JVM调用。而子类重写该方法,就可以清理对象占用的资源,该方法有没有链式调用,所以必须手动实现。        从程序的运行结果可以发现,执行System.gc()前,系统会自动调用finalize()方法清除对象占有的资源,通过super.finalize()方式可以实现从下到上的finalize()方法的调用,即先释放自己的资源,再去释放父类的资源。        但是,不要在程序中频繁的调用垃圾回收,因为每一次执行垃圾回收,jvm都会强制启动垃圾回收器运行,这会耗费更多的系统资源,会与正常的Java程序运行争抢资源,只有在执行大量的对象的释放,才调用垃圾回收最好。

public static void exit(int status):终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。

public static long currentTimeMillis():返回以毫秒为单位的当前时间

public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):注意这个命名是有误的,但是需要记住。从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束,注意是替换而不是插入。

    举例1:

public class Person {
    private int age;
    private String name;
    public Person(int age, String name) {
        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 "Person{" +
                "age=" + age +
                ", name=‘" + name + ‘\‘‘ +
                ‘}‘;
    }
    @Override
    protected void finalize() throws Throwable {
        System.out.println("当前对象被回收了,"+this);
        super.finalize();
    }
}
public class SystemDemo01 {
    public static void main(String[] args) {
        Person p = new Person(60,"赵雅芝");
        System.out.println(p);
        p = null;
        System.gc();
    }
}

输出结果:

Person{age=60, name=‘赵雅芝‘}

当前对象被回收了,Person{age=60, name=‘赵雅芝‘}

  举例2:

public class SystemDemo02 {
    public static void main(String[] args) {
        System.out.println("I love China");
        System.exit(0);
        System.out.println("I love you");
    }
}

输出结果:

I love China

举例3:

public class SystemDemo03 {
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        for (int x = 0; x < 100000; x++) {
            System.out.println("hello:" + x);
        }
        long end = System.currentTimeMillis();
        System.out.println("共耗时:" + (end - start) + "毫秒");
    }
}

输出结果:

........

hello:99999

共耗时:2680毫秒

举例4:

public class SystemDemo04 {
    public static void main(String[] args) {
        int[] arr1 = {11,22,33,44,55};
        int[] arr2 = {5,6,7,8,9,10};
        System.arraycopy(arr1,1,arr2,2,2);
        System.out.println(Arrays.toString(arr1));
        System.out.println(Arrays.toString(arr2));
    }
}

输出结果:

[11, 22, 33, 44, 55]

[5, 6, 22, 33, 9, 10]

时间: 2024-10-19 02:14:16

Java API —— System类的相关文章

Java入门——System类

Java入门——System类 System类简介 System类是一些与系统相关的属性和方法的集合,而且所有属性都是静态的. 序号 方法定义 类型 描述 1 public static void exit(int static) 普通 系统退出,如果status为非0就表示退出 2 public static void gc() 普通 运行垃圾回收机制,调用的是Runtime类的gc()方法 3 public static long currentTimeMills() 普通 返回以毫秒为单位

java 的SYSTEM类【转】

java 的SYSTEM类[转] Posted on 2009-12-03 16:46 火之光 阅读(728) 评论(0) 编辑 收藏 System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用. 1.成员变量 System类内部包含in.out和err三个成员变量,分别代表标准输入流(键盘输入),

Java 之 System 类

java.lang.System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作. 常用方法1: public static long currentTimeMillis():返回以毫秒为单位的当前时间. 该方法获取当前系统时间与 1970年01月01日00:00点之间的毫秒差值 常用方法2: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)`:将数

Java api 入门教程 之 JAVA的SYSTEM类

System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用. 1.成员变量 System类内部包含in.out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器). 例如: System.out.println(“Test”); 该行代码的作用是将字符

java之System类

1.System类概述 System类包含一些有用的类字段和方法.它不能被实例化. 2.成员方法 public static void gc() 运行垃圾回收器 public static void exit(int status) 终止当前正在运行的java虚拟机 public static long currentTimeMillis() 返回毫秒单位的当前时间 public static void arraycopy(Object src,int srcPos,Object desc,in

Java之System类的常用方法

System 系统类 主要常用于获取系统的属性数据 package com.yuanzijian01; import java.util.Arrays; /*  * system类的常用方法:  *   public static native void arraycopy(Object src,  int  srcPos,                                         Object dest, int destPos,                     

java中System类简介(转)

上次面试中遇到的一个问题,问到System.out.println()中的out是不是内部类[不是内部类],当时就给问蒙了,直观感觉out应该是System类的一个属性,跟内部类有什么关系?而且之前整理IO部分的时候记得有个PrintStream的类用于标准输出的,但是从没看过System的源码,也不敢随便再说了.后来看了下源码,发现的确是PrintStream,可能当时想问的是内部类的用法吧(真心感觉面试待靠缘分,很多面试官喜欢引导着问问题,方式很好,但很多时候可能让面试者搞不清你到底想问什么

Java API —— DateFormat类

1.DateFormat类概述         DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间. 是抽象类,所以使用其子类SimpleDateFormat. 2.SimpleDateFormat构造方法     public SimpleDateFormat():将一个 Date 格式化为日期/时间字符串.(默认模式) public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造 S

Java API ——StringBuffer类

1.StringBuffer类概述, 1)我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间.而StringBuffer就可以解决这个问题 2)线程安全的可变字符序列 3)StringBuffer和String的区别 · 前者长度和内容可变,后者不可变.  · 如果使用前者做字符串的拼接,不会浪费太多的资源. 2.构造方法 · public StringBuffer() :无参构造方法 · public StringBuffer(int capacity