CSIG一面

一面

3月16号被WXG挂了以后,今天才被CSIG-运营开发方向捞。

1个小时的面试:5分钟部门介绍 和 我自己的自我介绍,5分钟算法题,27分钟的八股,14分钟的项目,12分钟的题外话和反问。

面试官是个年轻小哥,很亲和,即使答不出来也回引导并回复答案,体验非常的好。答完一小时内就过了,等二面现在。

算法题

Leetcode198.打家劫舍原题,5分钟秒了。因为之前的笔试AK了,面试官也就没怎么着重算法题。

八股

对着简历一个个问,汗流浃背了都。

  1. Java基础

    1. 集合的分类,有哪些常见类

    2. 实现栈和队列应该用什么?

    3. Stack更适合实现栈的类有哪个?

    4. HashMap的底层结构?

      链表转红黑树的阈值老是记不住。

    5. HashMap的的负载因子的作用?

    6. 达到负载因子的阈值后,HashMap具体扩容的倍数?

      倍数答错了,应该是2,而非1.5

    7. 项目里你自己常用的集合类有哪些,除了LinkedListHashMap

    8. 使用Map是否存在这样一种缺陷,我虽然存储key到value的映射,但无法根据value找到key,这该如何解决?

    9. 你自己所说的“双向哈希”具体的实现?

      "双向哈希"可以通过自定义一个数据结构来实现,这个数据结构同时保存key到value和value到key的映射,但这需要保证key和value都是唯一的。

      这里的双向哈希是我生造的,但是查了确实有现成方案。

      可以使用Guava库的BiMap,它是一个双向映射的数据结构。但是需要注意,在BiMap中key和value都必须是唯一的,因为如果一个值对应多个键,这将违反Map的基本规则。

  2. 并发编程

    1. JUC下的常见的类有哪些?

    2. 线程池你是怎么使用的,其四个参数分别有什么含义?

      不知道,刚好没背

    3. ReentrantLock有同等替代的类或关键字吗?

    4. synchronized可标注的位置,其所持有的锁是什么?

    5. Java开发者为什么在有synchronized,还开发ReentrantLock

    6. ReentrantLock的特点或者实现的功能有哪些?

    7. Java里面有没有这样一种锁针对于读写的情况,它可以做到读不锁,但是写有锁的情况呢?

      这里面试官在尽力引导了,然后就答出ReentrantReadWriteLock,感觉面试官非常好

    8. 你在项目中如何使用CountDownLatch

    9. SemaphoreCountDownLatch的区别?

      不知道

  3. MySQL

    1. 索引为什么被提出来,其使用场景是什么?

    2. 索引的种类

    3. B+树存储数据在哪里?

    4. 为什么选用B+树作索引的数据结构,二叉树不是更快吗?

    5. 你从上述内容得到的启示?

      不知道

      来自面试官的回答

      其实其实我想谈的是就说就算你的理想情况再好,二叉树算法再好,但是你要考虑一下现实。

      虽然二叉树查找速度快,但在数据库中,由于磁盘I/O操作的延迟,B+树更优。B+树是多叉树,可以减少磁盘I/O次数。另外,B+树的叶子节点形成有序链表,对范围查询高效。因此,实际应用中,B+树作为索引结构更合适。

    6. 了解“回表”吗?

      不知道,然后面试官解释了一下什么是回表和使用场景。

    7. MySQL的存储引擎

    8. 事务隔离级别

    9. MVCC

      背的不全

    10. 在MVCC中,是如何回滚的?

      不知道

项目

  1. 你觉得你的项目中最难的实现点在哪里?

  2. 24小时的排行榜你该如何设计?(即跨天的)

    我说多存一天的,这样保证每个人即使浏览数据的时间点不同,但也能保证能读取24小时的数据。但面试官好像不太满意。

    面试官说了解一下令牌桶和漏桶,但我虽然了解了,但仅仅知道他可以用作限流,没想到可以用在这里。

  3. 雪花算法从哪里学的,其设计理念是什么?

  4. 生活中有什么也体现了雪花算法这种“分段”的?

    IP地址、区域地址

    面试官说,还有身份证号、学生证号

  5. 分布式架构

  6. 在多台服务器上,如何保证请求只访问一个服务器?

  7. Liquibase是什么软件?

    我之前只在SpringBoot框架下用过,没装过软件,就尬住了

  8. ThreadLocal用于解决什么的,你是在拦截器中使用的?

  9. 在拦截器结束时要对TheadLocal调用什么方法吗?

  10. TheadLocal中哪里的设计导致出现内存泄漏,其底层数据结构是什么?

    不知道

  11. 什么是强引用啊,弱引用,结合这部分回答一下?

    不知道,面试官这里还是在引导我,但是确实没背

题外话

  1. 你平时如何对编程时如何学习和实践的,除了算法以外?
  2. 假如按照60、80、100打分,你对大学课程的投入度的打分是怎么样的?
  3. 除了计算机,还有什么兴趣爱好吗?

反问

  1. 我们这个部门开发的系统,是给内部员工使用的一个系统?

    “运营开发”是腾讯云的云采购供应管理的岗位,也是一种后台开发,专注于构建公司内部同事使用的运营系统。比如运营工作或销售同事录入销售数据、采购数据等。

  2. 我还有哪些地方需要改进的?

    1. 加强知识的系统性和深度 不仅要关注于解决具体问题,还要形成知识体系,理解知识点之间的联系,以应对更广泛的挑战。
    2. 提升工程实践能力,特别是在并发编程MySQL方面。
    3. 算法与数据结构的应用:虽然打过ACM,但需要将算法与现实生活联系起来,通过对现实生活中的场景进行映射和理解,加深对计算机问题的理解,从而更好地应用于实际业务场景。
#面经##腾讯##腾讯云#
全部评论

相关推荐

12 22 评论
分享
牛客网
牛客企业服务