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

java单态模式讲解


单态定义:
        Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
        Singleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。
使用Singleton注意事项:
        有时在某些情况下,使用Singleton并不能达到Singleton的目的,如有多个Singleton对象同时被不同的类装入器装载;在EJB这样的分布式系统中使用也要注意这种情况,因为EJB是跨服务器,跨JVM的
单态模式的演化:
        单态模式是个简单的模式,但是这个简单的模式也有很多复杂的东西。
单态模式一:
i)
public class Singleton {
  private Singleton(){}
  //在自己内部定义自己一个实例,是不是很奇怪?
  //注意这是private 只供内部调用
  private static Singleton instance = new Singleton();
  //这里提供了一个供外部访问本class的静态方法,可以直接访问 
     public static Singleton getInstance() {
  return instance;
 }
 }
ii)等同于上一种
public class Singleton {
  //注意这是private 只供内部调用
       private Singleton(){}
  private static Singleton instance;
  //这里提供了一个供外部访问本class的静态方法,可以直接访问 
     public static Singleton getInstance() {
     if (instance == null)     
              instance = new Singleton();  
          return instance;      
 }
 }
注意:这个单态模式是不安全的,为什么说呢 ?因为没考虑多线程,如下情况
        Thread 1 调用getInstance() 方法,并且判断instance是null,然後进入if模块,在实例化instance之前,Thread 2抢占了Thread 1的cpu。Thread 2 调用getInstance() 方法,并且判断instance是null,然後进入if模块,Thread 2 实例化instance 完成,


相关文档:

java socket和多线程(Thread)实例

1. socket通信:有客户端和服务端的socket代码。
2.
多线程:客户端和服务端各用一线程发送信息;服务端另有一监听线程,用于把超时的信息删除。
   
这里应用到了同步,使两个线程可以操作同一个map。
代码:(类全在同一个包内)
server端:
import java.io.BufferedReader;
import java.i ......

java中字符串转换成时间格式总结

java中字符串转换成时间格式总结
关键字: java 字符串 时间 格式
通过长时间的对时间不同格式的转换,自己觉得其实就是对毫秒数的操作
Java代码
System.currentTimeMillis()  
System.currentTimeMillis()
得到从1970年1月1日到现在的毫秒数,就可以转换成各种的形式。
有这样一个字符串:“ ......

利用php中的eval来模拟java中的动态代理

使用java中的动态代理可以完成很多事情,比如将业务实例进行托管,实现AOP等,但是Php中没有实现这样的东西,昨天突然想到其实可以通过eval来模拟一个动态代理机制。php比java不同的是,php是不需要编译的,因此只要我们能够动态生成一段代码,然后用eval来执行就可以达到效果。代码如下:
/**
* 代理实现类
*/
inter ......

JAVA和PHP文件操作总结

JAVA文件操作总结
File类
File f = new File(path);
path为实际路径,该路径可以是文件,或文件夹,也可以是不存在的。
f.exists() 可以判断该路是否存在。
f.isDirectory() 可以判断是否是文件夹。
f.mkdirs(); 递归创建文件夹
File和输入输出流之间纽带FileInutStream,FileOutputStream
URL url = new URL(strUr ......

java 注释 : annotations 元数据

annotations : 注释
好处
1.文档编制
2.编译器检查
3.代码分析
JSR 175 是编程语言的元数据工具,为将元数据合并到核心java语言中提供正式理由和说明
基本知识:
注释采用"@"标记形式,后面是注释名称,然后在需要数据时,通过name=value对向注释提供数据
注释的三个基本种类:
    标记注释 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号