数据结构
常用的数据结构分析
huydl
要想提升自我,必须作出特别的努力,额外的付出。但是长远来看,必然会有所收获。
展开
-
Java 多线程并发 ReentrantLock锁
一、synchronized 和 ReentrantLock 的区别 synchronized 和 ReentrantLock ,都是加锁方式同步,一个线程正在执行,另一个线程必须等待。 使用分析: ReentrantLock 是Lock 的实现类,在 多线程竞争的环境下,更有性能优势,使用更加的灵活, 但是需要手动的去开启锁和释放锁,尽量放在 try catch finally 中 是适用于修饰代码块 ...原创 2020-11-13 15:51:04 · 287 阅读 · 0 评论 -
LinkedList 源码分析和使用
1.概述 底层实现是 双向链表,插入的效率比ArrayList高,但是随机访问的效率并没有 ArrayList 高。同时实现了 List 和 Deque,可以称为有序的容器, 也可以是队列,或者可以称为 栈(Stack)。 2.使用 //创建存放int类型的linkedList LinkedList<Integer> linkedList = new LinkedList<>(); /******...原创 2020-09-16 12:47:50 · 231 阅读 · 0 评论 -
ArrayList 使用和源码分析
1.概述 底层数组实现的,节约空间,但是数组是有容量限制的,超出限制时,使用 System.arrayCopyXXX复制到新的数组中,因此最好能够预估出数组的大小,默认第一次的创建的是 大小为 10 的数组。按照数组的下标访问元素性能是很高的,这特使数据的基本优势,直接在数组的尾部加入元素的性能也很高,但是 按下标,插入,删除元素的话,则需要 System。arrayCopyXXX 来移动元素,这时性能就差了,这是劣势。arrayList 可以自动的扩容,也就是 动态数组。 存放引用...原创 2020-09-16 12:18:13 · 85 阅读 · 0 评论