03 2018 档案

CountDownLatch 源码解析—— await()
摘要:上一篇文章说了一下CountDownLatch的使用方法。这篇文章就从源码层面说一下await() 的原理。 我们已经知道await 能够让当前线程处于阻塞状态,直到锁存器计数为零(或者线程中断)。 下面是它的源码。 sync 是CountDownLatch的内部类。下面是它的定义。 它继承了Abs 阅读全文

posted @ 2018-03-31 18:12 猫咪大王 阅读(1046) 评论(0) 推荐(1)

自定义ArrayList
摘要:自定义实现ArrayList很简单,只需要明白下面几点 1、ArrayList 底层是由数组组成的 2、数组有容量限制,但是ArrayList并没有(实际上也有,Integer.MAX_VALUE)。在增加数据的时候做好扩容 3、移除数组中的某一个数据要怎么做 下面是我自定义的ArrayList。基 阅读全文

posted @ 2018-03-15 16:59 猫咪大王 阅读(439) 评论(1) 推荐(0)

CountDownLatch 使用说明
摘要:CountDownLatch是一种java.util.concurrent包下一个同步工具类,它允许一个或多个线程等待直到在其他线程中一组操作执行完成。 CountDownLatch的用法非常简单,下面的例子也是我在网上看到的,十分贴切,这里就贴出来 下面是运行结果 可以看到 通过CountDown 阅读全文

posted @ 2018-03-15 10:49 猫咪大王 阅读(39898) 评论(5) 推荐(7)

Java 自定义实现链表
摘要:自定义实现链表很简单,只需要明白链表是什么样子的数据结构。 下图表示一种单向列表。其中指针first指向队头,last指向队尾,curr指向当前读的数据。 下面是我的实现代码,很简单,明白上述结构后,关键是构造一个内部类,里面包含一个指向下一个元素的对象(指向下一个元素的指针) 实践一下,看能不能使 阅读全文

posted @ 2018-03-09 17:59 猫咪大王 阅读(3072) 评论(1) 推荐(0)

利用递归方法求5!。
摘要:/** * 利用递归方法求5!。 */ public class Test0309 { public static void main(String[] args){ System.out.println(new Test0309().getNum(5)); } public int getNum(int n){ int res... 阅读全文

posted @ 2018-03-09 16:31 猫咪大王 阅读(2791) 评论(0) 推荐(0)

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
摘要:经典的问题。 我的想法是使用队列实现,首先初始化,然后通过两个步骤筛选出需要的数据: 1、挑选报数为3的数据,不加入队列 2、将挑选后的数据重新排序(重新报数) 下面是我的代码 阅读全文

posted @ 2018-03-09 15:58 猫咪大王 阅读(486) 评论(0) 推荐(0)