java小技巧
z466459262
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数组构造类哈希表
[code] private final static int[] digits = new int[(int) '9' + 1]; static { for (int i = '0'; i原创 2012-05-23 15:15:26 · 204 阅读 · 0 评论 -
int数组转数字
[code] //把正数当成负数来弄,避免逼近正数maxvalue产生的麻烦 int[] digits = new int[]{5,3,4,7,9,11}; long limit = -Long.MAX_VALUE; long result = 0; int i=0; result = -digits[i]; for(i=1;i...原创 2012-05-23 16:03:45 · 550 阅读 · 0 评论 -
setter方法提取---使用反射获得setter方法
[code] setters = new HashMap(); for (Method method : clazz.getMethods()) { String methodName = method.getName();//找出setter方法 //set方法至少长度为4,非静态,返回值为空,参数只有一个 if (methodName....原创 2012-05-28 18:47:45 · 505 阅读 · 0 评论 -
多线程操作
有两个线程,线程a先打印100下,然后线程b打印十下,然后再a打印。。。。 思路:一定要做到线程和任务分离,把a线程的任务和b线程的任务放到一个类里面来,然后再让这两个线程分别调用这个类就可以了 [code] package cn.itcast.heima2; public class TraditionalThreadCommunication { /** ...原创 2012-06-02 16:58:43 · 131 阅读 · 0 评论 -
多线程操作---可重入锁概念
//可重入锁的概念是 自己可以再次获得自己的内部锁, //重进入的实现是通过每个锁关联一个请求计数和一个占有它的线程,当计数为0时,认为锁是未被占有的,线程请求一个未被占有的 //锁时,jvm将记录锁的占有者,并将请求计数置为一,如果同一个线程再次请求,计数器将递增,每次占用线程退出同步块 //计数器值将递减,直到计数器为0,锁释放 //如果内部锁不是可重入的,代码将死锁 [code] ...原创 2012-06-03 15:04:56 · 187 阅读 · 0 评论 -
多线程操作----找错误
找找下面错误 [code] class ListHepler{ public List list = Collections.synchronizedList(new ArrayList()); public synchronized boolean putIfAbsent(E x){ boolean absent = !list.contains(x); if(abs...原创 2012-06-03 16:26:50 · 129 阅读 · 0 评论 -
多线程操作----缓存
[code] private Map cache = new HashMap();//这里只是一个普通的map,所以需要读写锁来保证原子性,而java并发库已经帮助我们做到了这一点 private ReadWriteLock rwl = new ReentrantReadWriteLock(); public Object getData(String key){ rwl.read...原创 2012-06-03 17:16:18 · 320 阅读 · 0 评论 -
多线程操作---线程间通信封装
Future是线程与线程间通信的封装 相当于省去了一个公共的共享区static List,以及具有wait和notify通信机制 CompletionService 相当于维护了一组Future [code] //Future相当于static List 以及wait,notify机制的结合,用于线程间通信 class Renderer{ private final Execut...原创 2012-06-03 18:34:31 · 186 阅读 · 0 评论
分享