文章列表
简单来讲,创建线程池是为了提高当前应用的性能,减少因为系统创建线程所带来的性能消耗。
Jdk1.5中新增了java.util.concurrent.ThreadPoolExecutor线程池类,但是在创建时,强烈建议程序员使用较为方便的 Executors 工厂方法 Executors.newCachedThreadPool()(无界线程池,可以进行自动线程回收)、Executors.newFixedThreadPool(int)(固定大小线程池)和 Executors.newSingleThreadExecutor()(单个后台线程)。
现在我们分析下ThreadPoolExecutor是如何 ...
先看看hashmap与hashtable中的数据结构
static class Entry<K,V> implements Map.Entry<K,V> {
final K key;
V value;
Entry<K,V> next;//存储冲突中链表下一个元素
final int hash;//依靠hash来索引map
从构造器看看两者不同
hashmap默认初始化容量为16;当使用非默认构造器时,其初始容量并非为所设置的容量initialCapacity,而是使用capaci ...
直接比较前后字符是否相等
public boolean isHuiWen(String in){
int end = in.length()-1;
int start=0;
while(start<end){
if(String.valueOf(in.charAt(start)).equals(String.valueOf(in.charAt(end)))
){
start++;
end--;
}else{
return false;
}
}
return true;
}
反转比较,好像很偷懒呀 ...
public class ProxyFactory implements InvocationHandler{
private Object proxy_object;
ProxyFactory(Object object ){
this.proxy_object=object;
}
@SuppressWarnings("unchecked")
public static Object DynamicProxyFactory(Object obj){
System.out.println("DynamicProxyFact ...
- 2009-12-04 23:09
- 浏览 774
- 评论(0)