Java后端
·2025-03-31打卡,今日学习kafka和es
算法三道:1. 字符串数相加 2. 手机电话数字字母组合(回溯) 3. 数组元素组合成目标数(回溯)
八股文:
1. 什么是hotkey
hotkey是探测热点数据的中间组件,可以动态判断数据是否经常被访问,从而动态调整缓存。
核心组件有etcd、worker,首先etcd相当于注册中心,用于向client和worker提供对方的信息,此外还可以通过etcd的控制台进行配置热点判定规则等。client首先计算数据的访问,然后发送给worker,然后统一汇总多个client的数据,再根据热点判断规则,判断是否为热点数据。
2. concurrenthashmap 1.7和1.8之间的区别
结构上:1.7使用segment,每一个segment相当于一个hashmap,默认是16个segment,线程访问segment需要获取segment的锁,所以最多同时可以有16个线程同时访问;1.8移除了segment的使用,而是直接使用hashmap类似的结构,使用一个列表作为主要存储,将锁的粒度细化到链表的头结点或红黑树的根节点,大大增加了并发量。
扩容:1.7扩容时是segment扩容,segment之前的扩容互不影响,遵循1.7hashmap的扩容机制;1.8扩容采用延迟扩容,先复制一个原列表两倍大小的新列表,将数据迁移,允许多个线程迁移,每当有一个线程要操作列表时,发现列表正在扩容,就会帮忙进行数据迁移。
3. mysql优化器是如何优化的
先将sql展开为解析树
优化sql,例如静态数据计算、子查询展开等
生产多个查询方案,并根据成本,选择成本最低的方案查询。
4. java线程池有哪些拒绝策略
默认抛出异常
交给提交任务的线程执行
直接丢弃当前任务
丢弃等待队列中最先被提交的任务
自定义拒绝策略
2
0
分享
操作
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
