Java构造方法私有化-->单例模式-->Runtime类的设计
来源:互联网 发布:大数据 传统零售业 编辑:程序博客网 时间:2024/06/03 17:43
在学了Java这么久的过程中,发现构造方法私有化,即用private修饰符修饰构造方法,那么这个类就不能用new进行实例化,否则会报错。既然不能用new进行实例化,那么能产生该类的实例么?这种设计难道没有意义么?其实这就是设计模式中的单例模式的设计。
Java中不用实例化就能调用的方法可以用static修饰,private修饰符仅有在该类中能访问,因此可以提供static的方法,返回该类的实例(getInstance),这样就能实例化该类,同时能保证单例的设计,即只存在一个实例,这样的设计在开发中的特定情况下具有重要的意义,如Java中Runtime类的设计,每个应用程序对应于一个Runtime类的实例,实现单例设计。部分Runtime源码如下:
public class Runtime {
private static Runtime currentRuntime = new Runtime();//静态属性成员,代表实例
/**
* @return the <code>Runtime</code> object associated with the current
* Java application.
*/
public static Runtime getRuntime() { //静态方法,获得Runtime实例
return currentRuntime;
}
/** Don't let anyone else instantiate this class */
private Runtime() {}//私有的构造方法
}
以上就是Runtime的单例设计。
关于Runtime一些别的常见用法如下:
1)、在单独的进程中执行指定的字符串命令。(下例打开系统中的计算器,停留两秒,然后关闭。)
import java.io.IOException;
public class RuntimeTest {
public static void main(String[] args) {
Runtime run = Runtime.getRuntime();
Process pro = null;
try {
pro = run.exec("calc");//相当于运行calc命令
} catch (IOException e) {
e.printStackTrace();
}
try {
Thread.sleep(2000);//当前线程停留两秒
} catch (InterruptedException e) {
e.printStackTrace();
}
pro.destroy();
run.exit(1);// System.exit()实际上是调用此方法
}
}
结果如下:
2)、用于计算耗费的系统内存。
public class RuntimeTest1 {
public static void main(String[] args) {
Runtime run = Runtime.getRuntime();
System.out.println("试图使用的最大内存:" + run.maxMemory()/1024/1024.0+ "MB");
System.out.println("总共内存:" + run.totalMemory()/1024/1024.0+ "MB");
System.out.println("空闲内存:"+run.freeMemory()/1024/1024.0+ "MB");
String str = "" ;
for (int i = 0; i<15000; i++){
str += i;
}
System.out.println("产生垃圾后的空闲内存:"+run.freeMemory()/1024/1024.0+ "MB");
run.gc();
System.out.println("GC垃圾收集后的空闲内存:"+run.freeMemory()/1024/1024.0+ "MB");
}
}
结果如下:
完。
- Java构造方法私有化-->单例模式-->Runtime类的设计
- 构造方法私有化---单例设计模式
- Java 单例设计模式——构造方法私有化
- [Java]构造方法私有化-->单例模式
- 构造方法私有化 (单态设计模式)
- 0008_构造方法私有化与单例设计模式
- java面向对象(十三) 构造方法私有化(单例与多例设计模式)
- Java 构造方法私有化与单例模式
- java 从构造方法私有化引出单例模式
- 构造方法私有化和单例模式
- 构造方法私有化demo---单例模式
- 【小白的java成长系列】——构造方法私有化(单例设计)
- 构造方法私有化--単例设计模式
- 构造方法私有化及单态设计模式
- java 构造方法私有化及单态模式
- 构造方法私有化及单态模式
- 构造方法私有化及单态模式
- java学习笔记之构造方法私有化与单例模式初讲
- iBatis自动生成的主键返回问题
- C++学习笔记之三
- JQuery 对象和DOM对象的相互转化
- Linux操作系统内核启动参数详细解析
- POWERVR 是什么
- Java构造方法私有化-->单例模式-->Runtime类的设计
- GAE启动错误 GoogleAppEngineLauncher.py", line 42...解决方案
- 超级电容的容值计算
- Svn修改日志
- 使用Dbms_Redefinition转换普通表-》分区表
- 简单使用ODBC测试数据源
- Android View 拖动
- c#索引器
- C# 类中索引器的使用