面试问题记录

本文最后更新于:2022年7月25日 晚上

字节群友面经1

sync和reentrantlock的区别
sync底层是锁升级的过程,无锁,偏向锁,自旋锁,重量级
reetrantlock 底层 是AQS这个类,AQS这个类里面一些操作都是cas操作

字节群友面经2

锁升级的整个过程。synchronize的优化,自适应,自旋锁,锁粗化,锁消除啥的。。

项目 hystrix和分布式事务
问了jmm
问了tcp怎么保证可靠。

清华的os b站的
6.s081,做了lab
极客时间的趣谈linux操作系统
极客时间的os45讲 和有个讲内存的课

答案

字节提前批面经

作者:想做秋天的风
链接:https://www.nowcoder.com/discuss/985106?type=2&channel=-1&source_id=discuss_terminal_discuss_hot_nctrack&page=1
来源:牛客网

计网

  1.  http三次握手,状态码,交互细节。
    
  2.  为什么要三次握手
    
  3.  四次挥手,状态码,传输细节,为什么握手要三次,挥手要四次
    
  4.  数据链路层怎么传输数据的,展开说说
    
  5.  Arp协议中网关怎么去转换ip地址到对应MAC地址的
    
  6.  如果数据包不在当前子网内,怎么传输到目标子网网关的
    

数据库

  1.  MySQL的行锁怎么实现的
    
  2.  MySQL的事务,展开说说
    
  3.  MySQL索引了解吗
    
  4. 索引是怎么实现的
    
  5. 索引有哪些,介绍下

  6. 联合索引中间可以有null值吗,为什么,测试过吗?

  7. B+树的特点,原理

  8. B+树索引和hash索引的区别,优劣
    什么是hash索引?区别?优缺点?

操作系统

  1. 了解死锁吗

  2. MySQL怎么解决死锁的

  3. 平时遇到过死锁吗,怎么解决的

JVM 垃圾回收

  1. JVM的垃圾清除说一下

  2. 垃圾清除算法有哪些,介绍下

  3. 知道的垃圾收集器有些什么

  4. 垃圾的判断方法,引用计数法为什么用的没有GCRoot的多,缺点是什么,为什么

  5. 平时测试过JVM的垃圾清除吗

Redis 持久化

  1. Redis的了解,介绍下

  2. Redis的持久化机制

  3. redis怎么实现持久化的

2种,1是快照,2是AOF日志。

  • 快照:原理是父进程调用fork函数,产生子进程,父子进程共享代码段和数据段;父进程负责处理客户端的请求,子进程进行数据持久化,遍历读取内存数据结构,然后序列化写到磁盘中。如果父进程接受到客户端的请求,需要修改内存数据结构,这时会用操作系统的写时复制机制进行数据段页面的分离。父进程会从共享的数据段中复制一份需要修改的页面分离出来,然后对复制的页面进行修改,不会对共享的页面进行修改。也就是说,子进程是感知不到页面的修改的,子进程可以安心的去进行数据持久化的快照操作。其实从子进程产生的时候起,内存数据结构就不会在变化了,这也是为什么叫做快照。
  • AOF原理:指令在执行前,先进行校验,然后存储到AOF日志中,再执行指令。如果宕机,只需要吧AOF日志进行指令重放就可以恢复到宕机前的状态。缺点:AOF日志是追加写入,会变的越来越长,重放整个AOF日志会很慢,所以需要对AOF日志进行瘦身。
  • 混合持久化:先加载快照的内容,然后重放增量AOF日志。该增量AOF日志中保存了从持久化开始到持久化结束的这段时间发生的增量AOF日志,通常这部分AOF日志很小,重放时间较短。

算法题

  1. 算法题:删除链表的倒数第k个节点

总结:完全没有问项目问题,计算机网络部分问的特别细!死问我数据链路层的传输原理,答得磕磕绊绊,有好些题都没有答得很好,算法题倒是挺简单的,最后反问,面试官说我答得挺好的,但有些地方细节上还需要再学习优化下。
希望可以收到二面的通知!!!


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!