且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-08-13 08:14:02

 

/*
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 http://www.baidu.com");//类似于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");
 }
 
}