Java常用类介绍之System

Java  System类提供的功能中主要有以下几个方面,

  1. 有标准输入、标准输出和错误输出流;
  2. 外部定义的属性访问以及环境变量的访问;
  3. 加载文件和动态库的方法;
  4. 快速复制数组的实用方法。
  5. 提醒系统垃圾回收
  6. 结束虚拟机

下边分别说一下。

第一、标准输入输出以及错误输出。

  关于这一点初学Java的可能都已经会使用了,最典型的输出就是System.out.println("hello,world!")。获取控制输入内容就是使用下边的代码,

    Scanner scanner = new Scanner(System.in);

    String strNum = scanner.next();

 如果想使用错误输出,只需要类似于如下代码即可。

 System.err.println("this is error");

这里的in 、out、和err 分别是 InputStream 和 PrintStream、PrintStream 类型。

大家注意在JDK源码当中in 、out、和err定义都是final类型,而且赋值为null,但是加入我们自己定义了一个类也这样做的话会编译报错的:

public final static PrintStream out = null;
static {
    try {
        out = new PrintStream("d:\\test");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}

这个原因这里不做详细解释,只需要有这样的事情就可以了。

  • 外部定义的属性访问以及环境变量的访问

  如下代码就是获取所有的Java的环境变量,得到的结果是HashMap结构

      Map<String, String> getenv = System.getenv();

如果想获取某个环境变量可以使用这个函数:

   System.getenv("PROCESSOR_LEVEL");

获取所有的属性使用

   Properties properties = System.getProperties();

这里的Properties 类型继承了Hashtable类,可以像便利Hashtable一样使用就可以了。

获取某个属性使用  String property = System.getProperty("java.library.path");即可。

使用System可以设置属性(System.setProperty()),但是不能设置环境变量;

  • 加载文件和动态库/动态库的方法
 System还提供了如下两个函数用于加载动态库或静态库。
System.load();
System.loadLibrary();

Java 能够调用其它语言编写的库函数,但是在调用之前需要对库进行加载,然后通过native函数进行调用。这两个函数可以用于加载库,关于这一点大家可以参考JNI的使用方法。

  • 快速复制数组的实用方法

System 提供相当实用的快速拷贝数组的方法,arraycopy(Object src, int srcPos, Object dest, int destPos, int length); 这个对于开发工程师是非常使用的,在项目使用这个拷贝数据比逐个拷贝效率会提高很多个数量级别。

  • 提醒系统垃圾回收

   提供了gc()函数,他的作用提醒虚拟机:此时希望进行一次垃圾回收。但是不一定垃圾回收会进行,具体什么时候进行是取决于具体的虚拟机的,不同的虚拟机有不同的对策。

  • 结束虚拟机
  System.exit(); 可以让虚拟机结束,这是唯一一个Try 无法执行星岛finally 中代码的办法。

猜你喜欢

转载自blog.csdn.net/zhuzg2005/article/details/84779124
今日推荐