首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

java 简单被遗忘的点

2012-10-24 
java 容易被遗忘的点最近看了些设计模式,发现自己在一些java点上存在疏忽,整理整理:1、Proxy和InvocationHa

java 容易被遗忘的点
最近看了些设计模式,发现自己在一些java点上存在疏忽,整理整理:
1、Proxy和InvocationHandler
   在java中动态代理用到的类,实现代理效果
   Proxy.newProxyInstance的3个参数说明:
     根据传入的第二个参数interfaces动态生成一个类$Proxy0,该类实现interfaces中的接口;
    第一个参数classloder将刚生成的$Proxy0类加载到jvm中
    第三个参数,调用$Proxy0的构造函数 创建$Proxy0的对象
    代理可以应用到aop、spring中的事物管理等;
2、Observable类 和Observer接口
   # import java.util.Observable; 
   # import java.util.Observer;
  
   主要方法包括:Observable类的setChanged()、notifyObservers()、addObserver();
   Observer的public void update(Observable o, Object arg);
3、ExecutorService和Executors
   java用来执行并发操作的工具类
4、SoftReference 和weakreference
   做缓存和gc处理用。
5、守候进程
  final static long N=100000;
public void run(){
  try{
   System.out.println("测试 Finally 会不被执行");
  
   for(long i=0;i<N;i++){long a=i+1;
   System.out.println("a====="+a);
   }
  }
  finally{
   System.out.println("Finally 被执行");
  }
}
public static void main(String[] args){
  Thread f = new Thread(new Finally());
  f.setDaemon(true);
  f.start();
}
finally方法不一定执行,因为finally为守候进程,当主程序结束时,没有非守候进程的话,jvm将停止。
6、finally执行测试
System.out.print("测试finally单纯修改返回值");
    int i = 1;
    try {
      return i;
    } finally {
      i = i + 10;
    }
  返回的i为1;
6、ThreadLocal的用法
确保在多线程,各个线程获得自己的对象,ThreadLocal。set(),ThreadLocal。get();
可以用来在各个dao中保存connection连接。

热点排行