java单态模式讲解
单态定义:
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
Singleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。
使用Singleton注意事项:
有时在某些情况下,使用Singleton并不能达到Singleton的目的,如有多个Singleton对象同时被不同的类装入器装载;在EJB这样的分布式系统中使用也要注意这种情况,因为EJB是跨服务器,跨JVM的
单态模式的演化:
单态模式是个简单的模式,但是这个简单的模式也有很多复杂的东西。
(注意:在这里补充一下,现在单态模式其实有一个写法是不错的见这里:http://www.blogjava.net/dreamstone/archive/2007/02/27/101000.html,但还是建议看完这篇文章,因为解释的事情是不一样的,这里说的是为什么double-checked不能使用.)
一,首先最简单的单态模式,单态模式1
java 代码
import java.util.*;
class Singleton
{
private static Singleton instance;
private Vector v;
private boolean inUse;
private Singleton()
{
v = new Vector();
v.addElement(new Object());
inUse = true;
}
public static Singleton getInstance()
{
if (instance == null) //1
instance = new Singleton(); //2
return instance; //3
}
}
java
相关文档:
泛型声明就是泛泛的声明类型。我们用其它的语言做一个比较:
Javascript声明变量: var i= 1;var c = ‘char ’
VB 声明变量: dim i=1;dim c=’char’
Perl 声明变量: $i = 1; $c = ‘char’
这些脚本语言,在声明变量的时候,根本就不想java那样还得声明类型。他们的类型已经� ......
1.相关类的介绍
服务器程序不同于客户机端的程序,它需要初始化一个端口进行监听,遇到连接呼叫,才与相应的客户机建立连接。Java.net包的ServerSocket类包含了编写服务器系统的全部所需功能,而客户端软件通常使用java.net包中的核心类Socket与服务器的某个端口建立连接。
2.单线程客户端程序建立步骤:
1)建立socket� ......
必须用this关键字的三种情况:
1.我们想通过构造方法将外部传入的参数赋值给成员变量,而构造方法的形式参数与类成员的变量名相同,这时就需要this这个关键字来区别局部变量与类变量;
2.假设有一个容器类和一个部件类,在容器类的某个方法中要创建部件类的实例对象,而部件类的构造方法要接收一个代表其所在容器的参数,这时也� ......
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.RandomAccessFile;
/**
* 描述:追加内容到文件末尾
* @author Administrator
*
*/
public class ......
1.1 不用new关键词创建类的实例
用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法。clone()方法不会调用任何类构造函数。
在使用设计模式(Design Pattern)的场合,如果用Factory模式创建对象,则改用clone( ......