腾讯云智一面面经

双面试官拷打

忘了录音,导致有些问题记不清了

自我介绍(1min)

实习拷打(10min),做的算法,最后面试官锐评:就是调了几个接口。又问难点,我只能把看的很多论文什么之类的难点讲了讲。

项目拷打(直接说项目是自己做的学习项目):

  1. 这个项目的难点是什么?回答代码沙箱,说是主要用来执行代码。面试官问这有什么难度的,不就一行代码就完成了吗?我直接绷不住了,说了一堆这个代码沙箱怎么执行代码的,要考虑内存占用、时间、安全等,以及用到了模板方法设计模式。
  2. 安全是怎么实现的?内存和时间怎么统计的?我回答了安全管理器,docker中的seccomp,在系统调用层面限制用户。又回答了内存是通过docker的api监测的,超时是通过另开启一个线程sleep来控制的,超过一段时间线程唤醒后抛出异常。
  3. 项目是否部署上线?没有,但是做过压测。
  4. 是否每一个请求都要开启一个容器?非也,只用了一个容器,但是为防止一个容器崩溃,可以仿照线程池的思想,用容器池。
  5. rabbitmq怎么使用的?回答了生产消费的流程,后面又回答了rabbitmq的消息可靠性,采用的是手动消息确认。没有消费成功就返回nack

常规八股拷打:

  1. HashMap的了解,开始吟唱

  2. mysql索引的了解,吟唱。in、between、or会不会走索引,怎么查看是否走索引(explain语句)

  3. 超大分页优化,黑马视频原题。900万条数据的分页查询

    sql
    复制代码
    SELECT * FROM stu LIMIT 9000000, 10;

    优化为

    sql
    复制代码
    SELECT * FROM tb_sku t, (SELECT id FROM tb_sku ORDER BY id LIMIT 9000000, 10) a WHERE t.id = a.id;
  4. 进程和线程的区别。吟唱。

  5. 线程是否安全?(没搞懂在问什么)我说这要看是否做了保证线程安全的措施,不安全的场景举了hashmap的例子说明多线程访问会不安全。又问线程的数据存放在哪里(栈私有,堆存放的是共享的),hash数组存放在jvm的哪个地方(堆)

  6. StringBuilder和StringBuffer,为什么能保证线程安全?

算法:最长回文字串(动态规划),忘记咋做了。。

总体来说有点压力面,感觉面试官一直在质疑做的这些东西(实习和项目),不过讲清楚了后续还行,但是回答问题时面试官又喜欢反问一下,可能是看你确不确定自己的答案。好在我还比较自信。

最后没撕出来,以为g,结果查看状态发现秒过了。只能说是运气好

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
鱼友1362
下载 APP