java
Coder_Home
这个作者很懒,什么都没留下…
展开
-
阅读源码是和大师面对面交流的机会之ArrayList数组元素的插入
如果想在数组的指定位置插入一个元素,而不是修改该位置,你会怎么做?大家都知道数组的优势是查找快速,但删除和插入较为麻烦。在阅读了ArrayList的add()方法之后,对这个问题有了一个具有知道意义的答案。 在调用list.add()方法之前,会先进行index验证,不符合要求则会抛出异常,size是当前数组中元素的个数,在这里可以看出ArrayList不允许隔着空位置插元素,只能依次插原创 2017-09-28 10:08:26 · 284 阅读 · 0 评论 -
阅读源码是和大师面对面交流的机会之ArrayList检查是否有重复元素
List是允许存在重复元素的,同样ArrayList也允许。那么ArrayList是如何检测是否存在重复元素的?下面我们浅读一下源码: /** * 判断列表是否包含某对象 * @param o * @return */ public boolean contains(Object o){ return in原创 2017-09-29 09:25:40 · 307 阅读 · 0 评论 -
关于JDK动态代理的小demo
JDK动态代理是基于面向接口编程,Spring AOP的实现也是基于此原理,而动态代理的实现则是基于反射机制。动态代理的主要目的就是灵活的将方法的调用与实现之间解耦,同时在目标方法调用的前后加入其他的通知。先看一个小demo:先写一个系统用户的实体类SysUser public class SysUser implements Serializable{ private String us原创 2017-10-11 10:04:13 · 259 阅读 · 0 评论 -
Java并发学习之理解Lock锁的初见
和synchronized不同,lock在实现同步时需要手动的获取和释放对象锁,这样做虽然缺失了synchronized隐式获取锁的便捷,但是却带来了锁的可操作性,可中断性以及可以知晓线程是否成功获取锁。 Lock的特征详述如下: 1.尝试非阻塞地获取锁:当前线程尝试获取锁,如果这一时刻没有被其他线程获取到,则成功获取该锁。 2.能被中断的获取锁:与synchronized不用,l...原创 2018-07-19 15:16:19 · 219 阅读 · 0 评论