聊聊java的系统类

为什么有系统类

我们知道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");
}

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,374评论 18赞 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,275评论 19赞 139
  • 第一章 初识javaJAVA 第一讲:什么是程序?:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的...
    人子日月几点阅读 638评论 0赞 1
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,309评论 0赞 62
  • 看完这些,思绪很乱,不知从何说起,原本是跟以往一样这个点应该睡着了。由于一个电话把我从浅睡状态拉了回来,怎奈醒来...
    墨章阅读 309评论 0赞 0

友情链接更多精彩内容