现在的位置: 首页 > 综合 > 正文

黑马程序员:Java基础总结—-单例设计模式

2013年10月31日 ⁄ 综合 ⁄ 共 1148字 ⁄ 字号 评论关闭
黑马程序员:Java基础总结



多重For循环的解决数学问题

 ASP.Net+Android+IO开发.Net培训、期待与您交流!



单例设计模式:
1、解决问题:

保证一个类在内存中的对象的唯一性

如软件的配置文件,可以使用单例,保证配置文件只有一份。

2、如何保证对象唯一:

将构造函数私有化,避免外界程序创建对象

类内部创建对象,自身进行实例化,从而调用功能(引用必须为私有静态的。)
为外界能访问此对象,将对象的引用通过公共访问方法暴露给外界(方法必须是静态的,才能被类调用)

3、体现:

饿汉式

class Single{

private Single(){

//..

}

private static Single single = new Single();

public static Single getSingle(){

return single;

}

}

懒汉式:延迟加载

class Sinlge{

private Single{

//.

}

private static Single single = null;

public static Single getSingle(){

if(single == null){

synchronized(Single.class){

if(single == null){

single = new Single();

}

}

}

return single;

}

}

4、应用

java.lang.Runtime
API中说法:每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过getRuntime 方法获取当前运行时。
个人理解:Runtime类封装了应用程序的运行环境,每个java程序都有自己的一个Runtime类的实例,但是我们不能够创建这个Runtime的实例对象,这是java程序启动时,自己就存在的。但是我们可以通过获取这个Runtime对象,从而控制java程序的状态。
比如说,我们可以通过获得Runtime实例对象,启动一个程序(如扫雷):

  1. Runtime run = Runtime.getRuntime();
  2.                 Process pro = null;
  3.                 try {
  4.                         pro = run.exec("winmine.exe");
  5.                 } catch (IOException e) {
  6.                         throw new RuntimeException("程序启动失败");
  7.                 }
  8.                 System.out.println(pro.getClass().getName());

 


ASP.Net+Android+IO开发.Net培训、期待与您交流!

抱歉!评论已关闭.