Java学习
文章平均质量分 81
Java的个人学习笔记
情、狠现实
小坤很困,快来写代码提神!
展开
-
JUC并发编程 进阶
Java JUC 并发编程进阶 笔记1.线程与进程2.Lock锁3.8锁现象4.多线程安全的集合5.Callable6.读写锁7.阻塞队列8.线程池9.函数式接口10.Stream流式计算11.ForkJoin12.异步回调13.JMM14.Volatile15.单例模式深究16.CAS17.原子引用18.常见锁原创 2022-03-06 11:45:54 · 850 阅读 · 0 评论 -
Java集合 Hashtable
Hashtable简介HashTable继承Dictionary类,实现Map接口。其中Dictionary类是任何可将键映射到相应值的类(如 Hashtable)的抽象父类。在任何一个 Dictionary 对象中,每个键至多与一个值相关联。Map是**“key-value键值对”**接口。每个键和每个值都是一个对象。HashTable采用"拉链法"实现哈希表,它定义了几个重要的参数:table、count、threshold、loadFactor、modCount。tab原创 2021-11-06 11:31:47 · 134 阅读 · 0 评论 -
Java集合 HashMap 源码分析
HashMap介绍HashMap是Map接口使用频率最高的实现类HashMap是以key-val对的方式来存储数据(HashMap$Node)key不能重复,但是值可以重复,允许使用null键和null值如果添加相同的key,则会覆盖原来的key-val,等同于修改(key不会替换,val会替换)与HashSet一样不保证映射的顺序,因为底层是以hash表的方式来存储的(jdk8 数组+链表+红黑树)HashMap没有实现同步,线程不安全(线程安全的是ConcurrentHashMap)扩原创 2021-11-04 22:18:28 · 229 阅读 · 0 评论 -
Java 集合 Map接口
Java 集合 Map接口Map接口特点(JDK8)Map与Collection并列存在。用于保存具有映射关系的数据:Key-ValueMap中的key和value可以使任何引用类型的数据,会封装到HashMap$Node对象中Map中的key不允许重复,愿意和HashSet一样Map中的value可以重复Map的key可以为null,value也可以为null,注意key的null只能有一个常用String类作为Map的keykey和value之间存在单向一对一关系,即通过指定的key原创 2021-11-04 20:15:53 · 105 阅读 · 0 评论 -
Java 集合 LinkedHashSet
Java 集合 LinkedHashSetLinkedHashSet介绍LinkedHashSet是HashSet的子类LinkedHashSet底层是一个LinkedHashMap,底层维护了一个 数组+双向链表LinkedHashSet根据元素的hashCode值来决定元素的存储位置,同时使用链表维护元素的次序,这使得元素看起来是以插入顺序保存的LinkedHashSet不允许添加重复元素构造方法LinkedHashSet() 构造一个具有默认初始容量(16)和负载因子(0原创 2021-11-04 16:26:23 · 225 阅读 · 0 评论 -
Java 集合HashSet 源码解析
Java 集合 HashSet 源码解析HashSet介绍HashSet实现了Set接口HashSet实际上是HashMappublic HashSet(){ map = new HashMap<>();}可以存放null值,但是只能有一个nullHashSet不保证元素是有序的,取决于hash后,再确定索引的结果不能有重复元素/对象构造方法HashSet() 构造一个新的空集合; 背景HashMap实例具有默认初始容量(16)原创 2021-11-04 11:44:51 · 150 阅读 · 0 评论 -
Java集合 List接口
Java集合 List接口List接口特性List接口是Collection接口的子接口List集合类中元素有序(即添加顺序与取出顺序一致),且可以重复!List集合汇总的每个元素都有其对应的顺序索引,即支持索引List容器中的每个元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素一些接口实现类AbstractListAbstractSequentialListArrayListAttributeListCopyOnWriteArray原创 2021-11-03 20:10:29 · 169 阅读 · 0 评论 -
ArrayList和LinkedList比较
ArrayList和LinkedList比较注意:都是线程不安全底层结构增删的效率改查的效率ArrayList可变数组较低,数组扩容较高LinkedList双向链表较高,通郭链表追加较低如何选择ArrayList和LinkedList如果改查操作多,选择ArrayList如果增删操作多,选择LinkedList一般来说,在程序中,80%-90%都是查询,因此大部分情况下回选择ArrayList...原创 2021-11-03 20:05:41 · 116 阅读 · 0 评论 -
Java集合 LinkedList 源码解析
Java集合 LinkedListLinkedList介绍LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList 实现 List 接口,能对它进行列表操作。LinkedList 实现 Deque 接口,即能将LinkedList当作双端队列使用。LinkedList 实现了Cloneable接口,即覆盖了函数clone(),能克隆。LinkedList 实现java.io.S原创 2021-11-03 17:48:50 · 135 阅读 · 0 评论 -
Java集合 Vector 源码解析
Java集合 VectorVector基本介绍Vector类的定义public class Vector<E> extends AbstractList<E> implements List<E>,RandomAccess,Cloneable,SerializableVector底层也是一个对象数组,protected Object[] elementData;Vector是线程同步的,即线程安全,Vector类的操作方法带有synchr原创 2021-11-03 14:52:13 · 103 阅读 · 0 评论 -
Java集合 ArrayList 源码解析
Java集合 ArrayListArrayList注意事项ArrayList可以加入null,且可以加入多个ArrayLIst是由数组来实现数据存储的ArrayList基本等同于Vector,除了ArrayList是线程不安全(执行效率高),多线程下不建议使用ArrayList()修改DEBUG的设置得以看见完整的数据底层结构与源码分析ArrayList中维护了一个Object类型的数组elementDatatransient Object[] elementData;//tra原创 2021-11-02 21:47:36 · 191 阅读 · 0 评论