system、runtime


import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;
import java.util.Properties;

import lambdaj.end;

/* 2017-02-15 13:29:22
 * java 提供了 System类  和 runtime 类 来与程序的运行平台进行交互
 * system  代表当前 java程序的运行平台 ,程序不能创建system类的对象,  
 * system 提供了一些变量和类方法,允许直接通过system类来调用这些类变量和类方法
 * 提供了代表标准输入、输出、错误输出的类变量
 * 提供了一些静态方法用于访问  环境变量、系统属性的方法 
 * 加载文件和动态链接库的方法
 * 
 * 
 * 加载文件和动态链接库主要对native方法   (访问操作系统底层硬件设备)java无法实现,必须借助c语言来完成
 * 实现步骤
 * - java 程序中声明native 修饰的方法    ,类似于abstract  方法,  只有方法签名,没有实现,编译该java 程序,生成一个class文件
 * - 用javah 编译第一步生成的class 文件,将产生一个   .h文件
 * - 写一个.cpp文件实现native 方法 ,这一步需要包含第2步产生的.h 文件 (这个文件又包含了jdk带的jni.h文件)
 * - 将第三步的.cpp文件编译成动态链接库文件
 * - 在java 中用system类中的loadLibrary  方法或runtime 类的 loadLibrary()方法加载第四步产生的动态链接库文件   
 * java 就可以调用这个native 方法
 */
public class SystemClassj {
	public static void main(String[] args) throws FileNotFoundException, IOException {
//		getenv();
		// getpro();
		
//		runtimej();
				
		
	}
	/* 2017-02-15 21:43:05
	 * 
	 */
	private static void runtimej() throws IOException {
		/*2017年2月15日19:03:55
		 * runtime 类
		 * 代表java程序的运行时环境,每个java程序都有一个与之对应的runtime实例,
		 * 应用程序通过该对象与其运行时环境相连,
		 * 应用程序不能创建自己的runtime实例 
		 * 但是可以通过 getruntime方法获取与之关联的runtime对象
		 * 
		 * 
		 * runtime  也提供了gc 方法。和runfinalization  方法来通知系统进行垃圾回收、清理系统资源,
		 * 提供  loadLibrary()   方法来加载文件和动态链接库
		 * 
		 * runtime 类代表java程序的运行时环境,可以访问jvm 的相关信息,  处理器数量,内存信息
		 * */
		
		Runtime runtime = Runtime.getRuntime() ;
		System.out.println(runtime.availableProcessors()+ "处理器");
		System.out.println(runtime.freeMemory() + "空闲内存");
		System.out.println(runtime.totalMemory() + "总内存");
		System.out.println(runtime.maxMemory() + "最大内存");
	
		//它可以单独启动一个进程来运行操作系统命令 
		runtime.exec("notepad.exe");/// 打开一个应用程序
	}
	/*
	 * 2017-02-15 13:58:29
	 * 
	 */
	private static void getenv() {
		Map eMap = System.getenv();
		for (String string : eMap.keySet()) {
			System.out.println(string + "-----" + eMap.get(string));
		}

		Properties properties = System.getProperties(); // 获取所有的系统属性
		// properties.store(new FileOutputStream("properties.txt"), "system
		// propretis"); // 将所有的系统属性保存在txt
	}

	/*
	 * 2017-02-15 13:57:21
	 * 
	 */
	private static void getpro() {
		System.out.println("----");

		Map pMap = System.getProperties();
		for (Object object : pMap.keySet()) {
			System.out.println(object.toString() + "-----" + pMap.keySet());

		}
	}
}

你可能感兴趣的:(java基础)