![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 64
morning_judger
个人总结学习
展开
-
java锁-自旋锁
什么是自旋锁? 所谓自旋锁是指不会引起调用者睡眠,若锁资源被其他线程占有,则会循环检查锁资源的占有者是否已经释放锁。如何实现自旋锁? 自旋锁的原理是通过CAS实现,其中CAS是比较并交换,本身是使用它的原子性的compareAndSet方法。 CAS 操作中包含三个操作数 —— 需要读写的内存位置(V)、进行比较的预期原值(A)和拟写入的新值(B)。如果内存位置V原创 2017-03-22 23:57:21 · 414 阅读 · 0 评论 -
java线程池
原生的线程池 private static ExecutorService executor = new ThreadPoolExecutor( 5, 10, 0, TimeUnit.MILLISECONDS, new ArrayBlockingQueue(5), new ThreadPo原创 2017-03-25 01:27:52 · 521 阅读 · 0 评论 -
jdk源码剖析之ArrayList
ArrayList中最重要的是elementData数组和size,主要是通过数组实现。ArrayList中有几点细节需要了解:1.创建对象时分配的空间。 ArrayList的构造方法中并没有为elementData数组分配空间,而是在Add方法中判断当前ArrayList是否为空,若为空则分配DEFAULT_CAPACITY(10)的空间。 /** * Con原创 2017-04-13 08:50:45 · 288 阅读 · 0 评论 -
jdk源码剖析之EnumMap
EnumMap的实现原理 EnumMap底层是通过数组实现的,他是通过Enum的ordinal实现对数组的索引,当我们要使用get方法,实际上是对数组vals[index]做索引操作,而相比于hashMap实际上是先进行hash,然后针对entry做next遍历,因此比较下来EnumMap的get方法的效率相对HashMap等要高一些。重要方法的实现 1.get方法原创 2017-04-13 22:57:41 · 344 阅读 · 0 评论 -
jdk源码剖析之LinkedList
LinkedList的实现原理 LinkedList底层是通过双向链表实现的,在LinkedList中定义了一个Node内部类,其内部结构如下: private static class Node { E item; Node next; Node prev; Node(Node prev, E element,原创 2017-04-20 11:48:20 · 332 阅读 · 0 评论 -
interceptor的应用与源码分析
最近项目中需要用到拦截器,因此研究了一下interceptor。interceptor是针对方法的拦截。1 interceptor的应用 1.1 定义Interceptorpublic class InterceptorTest extends HandlerInterceptorAdapter { @Override public boolean preHan原创 2017-05-03 09:01:38 · 421 阅读 · 0 评论