易截截图软件、单文件、免安装、纯绿色、仅160KB

单例模式(Singleton) Java实现

    单例模式的实现方式有很多种,在这里介绍最简单的两种。
    单例模式能够确保一个类只有一个实例(正常情况我们可以new出一个类的无数个实例),自行提供这个实例并向整个系统提供这个实例。下面介绍单例模式的实现方法:
    1. 单例模式有两种实现方式:一种是将类的构造法方法私有化,用一个私有的类变量instance保存类的实例,在加载类时,创建类的实例,并将实例赋给instance,再提供一个工友的静态方法getInstance用于获取类的唯一实例,该方法直接返回instance。另一种是将类的构造方法私有化,用一个私有的类的变量instance保存类的实例,到此为止都与第一种情况相同,但是在加载类时,将null赋给instance而不是创建类的实例,再提供一个类的工友的静态方法getInstance,用于获取类的唯一实例,该方法首先判断instance是否为null,如果为null,则创建实例对象,否则,直接返回instance。
    2. 两种方法的区别在于:前者在类被加载时,类的唯一实例就被创建出来了,后者在第一个调用getInstance()方法时,类的唯一实例才被创建,但需要在getInstance()方法的声明中使用synchronized关键字,保证某一时刻只有一个线程调用此方法,如果不使用synchronized关键字的话,就有可能出现有两个线程同时访问getInstance方法,如果此时instance恰好为null,则两个线程都会去创建这个类的实例,这就不符合单例模式的思想了。
    代码实现:首先建立一个文件TestSingleton.java,然后将下面的测试代码拷贝到文件中运行。
class OneSingleton {
 private static OneSingleton instance = new OneSingleton();
 private static int number = 0;
 private OneSingleton() {}
 public static OneSingleton getInstance() {
  return instance;
 }
 public synchronized int getNumber() {
  return number;
 }
 public synchronized void nextNumber() {
  number++;
 }
}
class TwoSingleton {
 private static TwoSingleton instance = null;
 private static int number = 0;
 private TwoSingleton() {}
 public static synchronized TwoSingleton getInstance() {
  if(instance == null) {
   instance = new


相关文档:

Java EE 6:EJB 3.1的变化引人注目

  那么要成为架构师的途径似乎只有现在较为流行的软件学院和个人自我培养了。关于软件学院我接触过不少,其宗旨绝大部分都是造就(or打造)企业 需要的软件架构师(or程序员or人才)。教师来源与企业、学员来源与企业、人才输送到企业是他们办学的手段。尽管各个如雨后春笋般出现的软件学院口号差 不多,但恐怕大多只是为了圈 ......

我的《Java 高级技术》课程PPT

《Java高级技术》课程简介
1. Java程序设计语言引论
2. Java语言的结构化特性
3.1. Java语言的面向对象特性(1)
3.2. Java语言的面向对象特性(2)
3.3. Java语言的面向对象特性(3)
3.4. Java语言的面向对象特性(4)
4.1. 面向对象设计原则
4.2. 面向对象设计模式示例
5.1. Java的异常处理机制
5.2. Java语言 ......

设计模式——抽象工厂 [java]

版权所有,转载注明出处!
转载请携带此信息:huangfox
-----------------------------------------------------------------
抽象工厂和工厂方法 刚开始很容易混淆,至少我是这样的!
不过他们产生的缘由来看,还是可以好好区分的。
1.工厂方法:是为了避免应用直接实例类层次结构中的具体类,提供一个方法根据运行情 ......

Java ByteCode

Java ByteCode
1,什么是Bytecode
C/C++编译器把源代码编译成汇编代码,Java编译器把Java源代码编译成字节码bytecode。
Java跨平台其实就是基于相同的bytecode规范做不同平台的虚拟机,我们的Java程序编译成bytecode后就可以在不同平台跑了。
.net框架有IL(intermediate language),汇编是C/C++程序的中间表达方式, ......

JAVA:安全证书 公钥加密,私钥解密示例程序


import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import javax.crypto.Cipher;
// 公钥加密,私钥解密示例程序
public class A {
& ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号