/*
java 的 Runtime 和 Process类 以及java的单例模式单例模式:大型开发的时候如果一个程序只需要一个类的实例进行服务那么 我们就可以使用单例模式
Runtime类没有public构造函数 我们只能通过 getRuntime静态方法获得 这个类可以动态的获得JVM的空闲内存 所有内存 以及运行一个子进程 exec函数
制作可视化编译工具的时候可以利用这个Process类中的函数可以获得子进程的输入输出流
*/
import java.io.* ;// 导入javaIO包的 所有类 输入输出流都在这个类 class Test { public static void main(String []args) throws Exception //直接抛出所有异常 { Runtime run=Runtime.getRuntime(); //只能通过静态方法获得一个实例这就是 单例模式 System.out.println(run.freeMemory()); //获得JVM的 空闲内存 System.out.println(run.totalMemory());//获得JVM虚拟机的全部内存 // run.exec("explorer.exe 类似于VC的ShellExcute函数 VB的shell函数 Process p=run.exec("netstat -na "); InputStream in=p.getInputStream(); //拦截输入流通过Runtime类的函数 int data; //用于接收输入流数据 while((data=in.read())!=-1) //如果读取到末尾会返回-1 否则返回 0-255对应的ASCII码 { System.out.print((char)data); //将流中的每个字节 输出 } //下面演示了单例模式 类似Runtime类一个 唯一的实例为全局服务 Singleton single=Singleton.getInstance(); //通过唯一的一个静态方法返回一个静态实例 single.outPut(); //调用函数 } }//下面这个类演示了单利模式
class Singleton { private Singleton(){};//只有构造方法私有了才不能被外部调用从而实现单例模式 private static final Singleton onlyInstance=new Singleton();//创建一个私有的静态 final常量 保证只有一个实例 public static Singleton getInstance() { return Singleton.onlyInstance; } void outPut() { System.out.println("Singleton Instance is constructed"); } }