美文网首页
聊聊java的系统类

聊聊java的系统类

作者: junson | 来源:发表于2016-07-11 02:47 被阅读288次

为什么有系统类

我们知道java具有平台无关的特性,但是不同的平台上面的约定又是有区别的
举个简单的例子,换行符在linux下是/r/n,在windows下是/n,要处理这个差别我们只能通过调用底层的系统接口获取系统的相关信息。
庆幸的是java为我们提供了这样的系统类。java提供了两个类:
  • System类
  • Runtime类
    这两个类可以用来与程序的运行平台进行交互。

关于System类

System类代表当前java的运行平台,程序不能创建system类的对象,System类对象提供了一些类Field和类方法,运行直接通过类名System调用。
System类主要提供了一下功能:
代表标准输入输出和错误输出的类Field
提供一些静态方法用于访问环境变量和系统属性
提供了加载文件和动态链接库的方法
此外System类还提供两个获取当前时间的方法:currentTimeMills()和nanoTime()方法,他们都返回时间戳区别是currentTimeMills一几十毫秒为单位,而nanoTime以纳秒作为计时单位。
提供了一个identityHashCode()方法,该方法用来唯一的标识对象

public class system {
public static void main(String[] args){
//获取系统所有的环境变量
Map<String,String> env = System.getenv();
for(String name:env.keySet()){
System.out.println(name+":"+env.get(name));
}
//获取指定环境变量的值
System.out.println(System.getenv("JAVA_HOME"));
//获取所有系统的属性
Properties props = System.getProperties();
//将所有的系统属性保存到props.txt文件中
//props.store(new FileOutputStream("props.txt"), "System Properties");
//输出特定的系统属性
System.out.println(System.getProperty("os.name"));
}
}

关于Runtime类

Runtime类代表了java的运行时环境,每个java程序都有一个与之对应的Runtime的示例,和System类一样,Runtime也提供了gc()和runFinalization()方法来通知系统进行垃圾回收。

exp:

public static void main(String[] args){
Runtime rt = new Runtime();
System.out.println(rt.availableProcessors());//处理器数量
System.out.println(rt.freeMemory());//空闲内存数
System.out.println(rt.totalMemory());//总内存数
System.out.println(rt.maxMemory());//最大内存数
}

除了这个之外,Runtime类处理可以访问JVM相关信息之外,还提供了一个功能就是可以直接执行操作系统的命令

public static void main(String[] args){
Runtime rt = new Runtime.getRuntime();
rt.exec("notepad.exe");
}

相关文章

  • 聊聊java的系统类

    为什么有系统类 System类 Runtime类这两个类可以用来与程序的运行平台进行交互。 关于System类 p...

  • 06 Java常用类

    java.lang.Object类 所有Java类的最终祖先,编译系统默认继承Object类,Object类包含了...

  • 聊聊java的容器类

    java的容器类库可以说是我们平时平时编程时使用最频繁的类库了。下面介绍下这个使用最频繁的兄弟伙: java容器的...

  • java中的ClassLoader

    java类加载流程 java jvm系统自带三个类加载 BootStrap ClassLoader最顶层的类加载器...

  • https://www.ibm.com/developerwor

    Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由 Java 应用开发人员编写的。系统提供的...

  • T-18- Java 基础知识 | 包介绍

    Java: 1、java.lang包:java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、...

  • 系统学习 Java IO (三)----File

    目录:系统学习 Java IO---- 目录,概览 Java IO API 中的 File 类可以访问基础文件系统...

  • 聊聊java最常用的类

    大部分的 Java 软件开发都会使用到各种不同的库。近日我们从一万个开源的 Java 项目中进行分析,从中提取出最...

  • 聊聊java的日期处理类

    java里面常用的日期处理类: java里面常用的日期处理类主要有: Date Calendar TimeZone...

  • Java反射基础与实践

    本文和大家聊聊Java反射。 什么是Java反射(Reflection)? 在程序运行的过程中,能够动态的检索类相...

网友评论

      本文标题:聊聊java的系统类

      本文链接:https://www.haomeiwen.com/subject/siodjttx.html