System对象
System中的类和属性都是静态的
System可以描述系统环境
在虚拟机启动的时候,系统环境会去加载一些系统属性信息,getProperties()获取描述,Property类是HashTable的子类,
out是标准输出,默认是控制台,
in是标准输入,默认是键盘
System.gc()垃圾回收
查看系统环境加载了那些信息(因为Properties是hashtable的子类,所以可以用hashtable的方法取出数据)
import java.util.*; public class test{ public static void main(String[] args) { Properties p= System.getProperties(); for(Object o :p.keySet()) { String value=(String)p.get(o); System.out.println(o+" "+value); } } }
如何在系统中自定义一些特有信息?
通过System.setProperty();
System.setProperty("hhhhhhhhhhhhhhhhhh","mmmmmmmmmmmmmmmm");
获取指定属性信息
System.out.println(System.getProperty("hhhhhhhhhhhhhhhhhh"));
在虚拟机启动时动态加载一些属性信息
在cmd窗口运行时通过-D参数名=参数值的形式传递参数
C:>java -Ddd=kkk test
System.setProperty("hhhhhhhhhhhhhhhhhh","mmmmmmmmmmmmmmmm"); Properties p= System.getProperties(); String u=System.getProperty("dd"); System.out.println(u);
输出结果:kkk
Runtime对象
1,每个java应用程序都有一个Runtime(运行时)实例,使应用程序能与其运行环境相连接
没有构造函数,而且他的方法都不是静态的,所以他一定会通过一个本类类型的静态方法提供一个本类对象【应用程序一执行,对象就创建完毕了】-----》单例设计模式---》只有一个对象
获取对象的方法 static Runtime getRuntime()
这个类的作用:
exec():execute【执行】的简写
command:cmd:命令
exec(String command):可以在单独的进程中执行单独的命令
有这个特点可以看出该类使用了单例设计模式完成
下列代码可以运行qq应用程序
Runtime r= Runtime.getRuntime();
r.exec("C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe");
%SystemRoot%system32;%SystemRoot%;
因为环境变量中有这条,所以在执行这条命令式会去系统盘找
C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe这个路径下的.exe文件
桌面图标打开应用程序:点击按钮,调用本机应用程序
Process exec(String command)
返回值类型是Process abstract
应用程序一被执行就已经创建了一个进程,是虚拟机创建的,
Process中的方法
destory()杀掉子进程【QQScLauncher.exe被秒杀】
他只能杀掉他自己创建的进程
Runtime r= Runtime.getRuntime(); Process p=r.exec("C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"); Thread.sleep(1000); p.destroy();
打开一个文件,只需要指定打开他的工具【使用记事本打开test.java文件】
Runtime r= Runtime.getRuntime();
Process p=r.exec("notepad.exe test.java");
Date类
他对时间和日期进行了描述【精确到了毫秒】
Date d= new Date(); System.out.println(d);
打印结果:Sun Mar 18 09:58:56 CST 2018
打印的是当前时间