今天也不怎么忙,想了想还是再写篇博客吧^^). 网上各种网站,包括csdn,博客园,开源中国,我想讲java基础相关的文章没有1000,也有800了吧。 自己为什么还要写这篇博客呢,是自己发现关于java基础相关的知识点自己已经遗忘的差不多了。所以就想通过这篇博客来唤醒自己一些关于集合的知识点,再就是以后再次忘了也可以通过这篇博客回忆起来。技术是迭代很快的,说不定明天就又出什么新技术。所以我想除了某些必要的技术需要去额外花时间学习之外(像springBoot,SpringCloud,微信小程序,h5,区块链等)。 基础是很重要的了吧,只有根深才会叶茂。所以以后几篇文章都是些java基础相关的。
集合包括单链,双链集合。因为其数据结构的不同, 数据结构包括: 数组,链表,队列,堆,栈,图形,树形(二叉树)。 我想除了图,其他的6中数据结构都会有一定的认识. 在此不过多的阐述。 单链集合包括list ,set 。 双链就是map相关了。
List: ArrayList, Vector, LinkedList, stack
Set: HashSet, LinkedHashSet, TreeSet
Map: HashMap, LinkedHashMap, HashTable, TreeMap, CurrentHashMap
Vector,HashTable, CurrentHashMap : 安全
有人会说这么多,我怎么记着完呢。要对比着去记。 就比如一些很零散的知识点我就会这样做,像物理分页,逻辑分页,物理关联,逻辑关联,物理主机,虚拟主机等。
物理分页: 即SQL中采用了limit 关键字来进行分页
逻辑分页: 即将信息全部查询出来,然后通过代码去进去分页,并不是依赖于SQL
逻辑关联: 即通过关联查询,代码相关操作去进行关联
软提交: 即提交到内存中
硬提交: 即提交到磁盘中(持久化进磁盘)
内迭代: 隐式的迭代(如Stream)
外迭代: 显示的迭代(如 for, foreach)
内存泄露: 由于锁的原因,造成了阻塞, 而占着锁的那个又不做事,就相当于占着茅坑不拉屎(见谅,见谅)(占着内存不作为又不释放)
内存溢出: 就像水一样,满了再加自然而然就溢出了(内存不足)
集合相关特性,知识点可以分门别类整理好对比着去记,包括集合各类的安全性, 有序性,是否能存放null值,null键,是否能存放重复值,底层数据结构等