第一次发面经,希望能攒点人品!1.介绍一下hashmap2.hashmap是线程安全的吗?3.为什么在8的时候树化?4.介绍一下垃圾回收算法5.请介绍一下ZSet底层数据结构6.ZSet适用于什么场景?7.如何确保线程安全?8.乐观锁和悲观锁的区别9.不使用锁如何确保线程安全10.Syncronized底层原理11.索引底层的数据结构12.B+树和B树的区别13.B树能应用在什么场景14.TCP粘包问题八股好像就这么些,基本上都答出来了算法题如下:public class Item { public int id; public int parentId; private String name; public Item(int id, int parentId, String name) { this.id = id; this.parentId = parentId; this.name = name; } public Item() { }}public class CategoryRsp extends Item { public List child; // 构造方法 public CategoryRsp(int id, int parentId, String name, List child) { super(id, parentId, name); this.child = child; } public CategoryRsp(){ super(); }}写一个函数,输入一个parentId,获取CategoryRsp,(要求成员变量里面的列表包含这个parentID的子节点及子节点的子节点)括号里面的这句话是我自己加上去的,一开始看这个题目一直看不懂什么意思,直接写错,浪费了很多时间,后面面试官讲解了下,一开始说给我30分钟时间,结果我做了45分钟都没做出来,知道用递归做,没做出来,讲了下思路。我辛辛苦苦刷了100道力扣,他竟然不给我手撕力扣,还是自己太菜了。下午收到邮件已挂