面试-公共
2024-01-09 14:11:44 5 举报
AI智能生成
为你推荐
查看更多
在面试-公共环节中,面试官将评估候选人的沟通能力、团队协作能力、解决问题能力和领导力等方面。这个环节通常包含自我介绍、提问和回答等环节。候选人需要准备好如何展示自己的优势,同时应对面试官可能提出的各种问题。面试-公共环节是展示个人能力和魅力的重要机会,候选人需要充分准备,以获得面试官的认可。
作者其他创作
大纲/内容
诚实
积极/主动
责任心
良好的沟通能力
良好的解决问题能力
《金字塔原理》
结论先行
提早的暴露问题,不要藏起来
良好的汇报结果能力
《大话数据结构》《大话设计模式》
极客时间
你最近有没有完整的看过一本书
K8s,docker、spring源码、JUC、JVM
有没有完整的看过一套教学视频
考察的是你的知识是成体系的还是碎片化
有没有系统的学习知识
自我驱动
特质
分析面试官到底想问的是啥
良好的解决问题的能力
沟通表达能力
逻辑思维能力
技术实践能力
工作效率能力
不管武功好不好看,好用就行
不管黑猫白猫,抓到耗子就是好猫
考察的是综合能力
场景题
面试技巧
当链表长度大于等于8并且数组容量大于64时,链表转红黑树
当长度小于等于6时,红黑树转链表
数组+链表/红黑树组成
哈希冲突时,链表转红黑树流程
O(1)
数组(一段连续的内存空间,存储的是相同类型的数据)
O(n)
链表(不连续的内存空间)
O(logn)
红黑树
数据结构(时间复杂度、空间复杂度)
1、数据结构
空间复杂度:红黑树占用空间是链表占用空间的2倍
时间复杂度
put时计算hashcode值,得出数组下角标,找到数组存放位置
get时计算hashcode值,得出数据下角标,找到数组存放位置,链表内数据用equals对比取出,红黑树用getTreeNode()取出
1、用高16位字节码 和 低16位字节码 异或 得出结果(保留了高16位和低16位的特佂)
2、只需要对比低16位字节码即可,就可以避免大部分的hash冲突
Hash算法优化
公式:(hash & (n-1) == > 用 hash取模 %)
因为与运算,在计算机底层性能更好
2a + 2b = 2(a+b)
用与运算
寻址算法优化
能不能被优化呢?
2、使用方式
数据结构/时间复杂度
底层是链表/红黑树组成
3、hash冲突
当达到阀值的时候,会自动扩容 为当前数组容量的2倍大小
负载因子 0.75 * 数组容量 = 阀值
新问题,数据迁移,数据新节点寻址的问题
公式:(hash & (n-1) == > 用 hash取模 %)
对比公式得出,与运算 不需要取模,性能更高
扩充HashMap时,不需要重新计算hash。只需要看原来的hash值新增bit是1还是0就可以了!1.是0索引没变2.是1索引变成“原索引+oldCap(原位置+旧容量)”。
底层原理,优化后逻辑
4、扩容机制
数组长度是2的n次幂。引申到代码优化能力
有一个场景是分页查询100条数据,所以初始化容量应该是(100/0.75)+1=134,134经过jdk处理后【2的n次幂】,集合初始容量会被设置成256
设置初始化容量:new HashMap(256)
分段锁
cas+volatile/synchronized
引入线程安全概念:concurrentHashMap
使用技巧
聊一聊什么是Hashmap?
实践一下
面试
0 条评论
回复 删除
下一页