压题:字节跳动面试问题大揭秘

压题:字节跳动面试问题大揭秘 字节日常实习后端面经 【一面】约50min 1.http和https的区别 2.get和post的区别 3.3次握手的过程,以及为什么不是2次或者4次 4.ArrayList和LinkedList的区别 5.在使用时候,你是如何区分两者的(就是具体使用场景) 6.HashMap的底层数据结构 7.HashMap会产生哪些并发安全?如何解决的? 8.说一下ConcurrentHashMap是如何实现的线程安全的? 9.除了ConcurrentHashMap,还可以如何将HashMap变为线程安全的 10.Redis常见的数据结构有哪些?以及底层是如何实现的? 11.项目中为什么引入Redis呢?和本地缓存有哪些区别? 12.MySQL的char和varchar有什么区别? 13.对这两个字段建立索引,有哪些需要注意的地方嘛? 14.索引有哪些分类嘛? 15.你在项目中尝试过优化索引嘛? 16.说一下Explain会返回哪些参数? 17.场景设计题:有一个窗口可以执行任务,有一部分任务具有优先级,该如何设计调度算法呢?进阶:优先级低的任务出现饥饿问题,该如何进一步优化? 18.算法题:输出树的最大宽度 19.反问 【二面】80min 1.项目背景 2.项目部署的过程 3.域名和ip地址如何对映的 4.已知一个进程名,如何杀掉这个进程 5.进程间通信有哪些方式?kill-9使用的是哪种 6.Redis是单点部署还是集群部署 7.如果Redis数据超过内存限制,该如何处理 8.Redis缓存过期如何实现的?底层呢? 9.Redis持久化是如何实现的? 10.介绍RDB持久化机制的详细过程吧 11.RDB持久化会阻塞主线程嘛? 12.fork创建子进程有哪些特点呢? 14.Copy On Write技术介绍一下 15.为什么Java打包之后是jar,而不是和C直接生成exe可运行文件 16.两道算法题