java 容易被遗忘的点

最近看了些设计模式,发现自己在一些java点上存在疏忽,整理整理:
[color=red]1、Proxy和InvocationHandler[/color]
在java中动态代理用到的类,实现代理效果
Proxy.newProxyInstance的3个参数说明:
根据传入的第二个参数interfaces动态生成一个类$Proxy0,该类实现interfaces中的接口;
第一个参数classloder将刚生成的$Proxy0类加载到jvm中
第三个参数,调用$Proxy0的构造函数 创建$Proxy0的对象
代理可以应用到aop、spring中的事物管理等;
[color=red]2、Observable类 和Observer接口[/color]
# import java.util.Observable;
# import java.util.Observer;

主要方法包括:Observable类的setChanged()、notifyObservers()、addObserver();
Observer的public void update(Observable o, Object arg);
[color=red]3、ExecutorService和Executors[/color]
java用来执行并发操作的工具类
[color=red]4、SoftReference 和weakreference[/color]
做缓存和gc处理用。
[color=red]5、守候进程[/color]
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将停止。
[color=red]6、finally执行测试[/color]
System.out.print("测试finally单纯修改返回值");
int i = 1;
try {
return i;
} finally {
i = i + 10;
}
返回的i为1;
[color=red]6、ThreadLocal的用法[/color]
确保在多线程,各个线程获得自己的对象,ThreadLocal。set(),ThreadLocal。get();
可以用来在各个dao中保存connection连接。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值