天天看点

java中的Runtime 和Process 类用法 以及开发中的单例模式 暑假十一天

/*

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虚拟机的全部内存

   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");