Skip to content

Latest commit

 

History

History
74 lines (42 loc) · 3.17 KB

interview2.md

File metadata and controls

74 lines (42 loc) · 3.17 KB

刷别人的面经

Spring AOP源码分析

JVM调优的一次经历

线上系统频繁卡死 -> 通过可视化工具看JVM各区域情况,GC次数和耗时等(没有可视化工具就用jstat) -> 发现每半小时FullGC 每3分钟YoungGC ->通过 jstat 的观察,我们当时可以看到,每次 Young GC 过后升入老年代里的对象其实很少。所以怀疑不是从年轻区进去老年区,而是直接进入老年区 -> 用jmap dump出内存快照,发现这个几百M的对象是个amp -> 怀疑大对象

https://www.bilibili.com/read/cv7186913

分库分表的设计

取模法 优点:没有热点问题 缺点:扩容要数据迁移

范围法 优点:扩容不要数据迁移 缺点:有热点问题

Group分组法:将上面两个的优点结合。

https://zhuanlan.zhihu.com/p/66842274

Redis HyperLogLog

一种概率算法,用来统计某个网站的UV啊什么的。

https://m.haicoder.net/note/redis-interview/redis-interview-redis-hyperloglog.html

数据库优化,日期该如何建索引(这个我没想到聚合索引,他说我对mysql不熟),B+树的特性

聚合索引适合用在日期上,因为日期经常做范围查询,聚合索引适合做范围查询,反而聚合索引用在主键id上是浪费,因为一般我们很少用id做范围查询。

https://cloud.tencent.com/developer/article/1026013

B+树比B树的好处在于,B+的非叶子节点不存储数据,B树的非叶子节点存储数据,而磁盘每页的容量是有限的,所以B+可以减少磁盘的IO。 另一个数据都在叶子节点在范围查询中更方便,不用再去非叶子节点找了。

https://cloud.tencent.com/developer/article/1543335

各限流算法的优缺点

https://www.zhenchao.org/2017/10/18/solution/throttle/

MySQL的存储引擎的区别

MyISAM叶子节点存的是地址,不是数据, 而InnoBD 数据就是索引,索引就是数据。

MyISAM不支持事务,而InnoDB支持事务,支持行锁,ACID

https://blog.csdn.net/zgrgfr/article/details/74455547

一个100G的文件,内存只有8G,如何给文件排序,文件内容都是按行存储的URL

先分成20个小文件,每个文件5G, 每个文件各自进行内排序。然后每个文件各取0.2G,进行排序,一旦用完,就继续从那个文件取0.2G

找到一个文件里出现次数最多的的数字,文件大小远大于内存容量

先hash(num) % n ,分成n个小文件,每个小文件求频率次数,拿到hash_map,取频率最高的数字以及次数, 拿到 n个 频率最高的数字和次数,再group by比较下。

https://blog.csdn.net/v_JULY_v/article/details/6279498

如何设计一个线程池

https://segmentfault.com/a/1190000040631931

两个线程交替打印1-10的数字

https://cloud.tencent.com/developer/article/1650130

求每个部门工资最高的员工

leetcode184

培君字节二面

堆外内存

好处

加速GC回收,大量对象产生在堆内,GC回收得压力是很大得

更自由、更高效得使用整个计算机内存

更高性能得跨进程数据通信,避免了主内存得多次copy

https://blog.csdn.net/wmq880204/article/details/115177734