java面试博客汇总

1、java基础:

Java基础知识点总结归纳,超级全面!(2021版)_Java程序员-张凯的博客-CSDN博客_java基础

2、Java集合

ArrayList:底层是数组
LinkedList:底层是双向链表
Vector:底层是数组,线程安全的,效率低,使用较少
HashSet:底层是HashMap,放到HashSet集合中的元素等同于放到HashMap集合key部分了
TreeSet:底层是TreeMap,放到TreeSet集合中的元素等同于放到TreeMap集合key部分了
HashMap:底层是哈希表。
Hashtable:底层是哈希表,线程安全的,效率低,使用较少
Properties:线程安全的,并且key和value只能存储字符串String
TreeMap:底层是二叉树。TreeMap集合的key可以自动按照大小顺序排序

Map的扩容机制_一只奈良森屿的博客-CSDN博客_map的扩容机制

java中的集合_HelloLV111的博客-CSDN博客_java集合

JAVA——集合_BerglingYY的博客-CSDN博客_java集合

Java集合、泛型和枚举 (biancheng.net)

ConcurrentModificationException异常原因和解决方法_碌碌无为_心不在烟的博客-CSDN博客_concurrentmodificationexception

红黑树详解_晓之木初的博客-CSDN博客_红黑树

注意:HashMap链表转红黑树,插入一千万个元素都没有触发红黑叔?

答案:根据泊松分布统计,通常情况下 哈希冲突 链表长度达到8的可能性只有亿分之六,红黑树只是在极端情况下出现的。要想体验,可以重写  hashcode返回0或固定值。萌新问一个HashMap链表转红黑树的问题【java吧】_百度贴吧 (baidu.com)

3、树

红黑树规则

  1. 节点不是黑色,就是红色(非黑即红)
  2. 根节点为黑色
  3. 叶节点为黑色(叶节点是指末梢的空节点 NilNull
  4. 一个节点为红色,则其两个子节点必须是黑色的(根到叶子的所有路径,不可能存在两个连续的红色节点)
  5. 每个节点到叶子节点的所有路径,都包含相同数目的黑色节点(相同的黑色高度)

红黑树详解:红黑树详解_晓之木初的博客-CSDN博客_红黑树

4、排序算法

冒泡:简单的说, 就是设置一个标准值, 将于这个值的放到右边(不管排序), 将于这个值的放到左边(不管排序), 那么这样只是区分了左小右大, 没有排序, 没关系, 左右两边再重复这个步骤.直到不能分了为止

插入:将待插元素,依次与已排序好的子数列元素从后到前进行比较,如果当前元素值比待插元素值大,则将移位到与其相邻的后一个位置,否则直接将待插元素插入当前元素相邻的后一位置,因为说明已经找到插入点的最终位置

快排:简单的说, 就是设置一个标准值, 将于这个值的放到右边(不管排序), 将于这个值的放到左边(不管排序), 那么这样只是区分了左小右大, 没有排序, 没关系, 左右两边再重复这个步骤.直到不能分了为止

堆排:顾名思义, 就是将数据以堆的结构, 或者说类似于二叉树的结构, 每次都整理二叉树将最大值找到, 然后放到数组末尾. 个人感觉有点像选择排序.都是每次遍历选择一个最大值或最小值

选择:简单的说, 就是设置一个标准值, 将于这个值的放到右边(不管排序), 将于这个值的放到左边(不管排序), 那么这样只是区分了左小右大, 没有排序, 没关系, 左右两边再重复这个步骤.直到不能分了为止

平均最好最差稳定性
冒泡n2nn2稳定
插入n2nn2稳定
快排nlog2Nnlog2Nn2不稳定
堆排nlog2Nnlog2Nnlog2N不稳定
选择n2n2n2不稳定
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值