腾讯【CDG广告】后端开发实习一、二面面经和参考答案

之前的一篇抖音的秋招面试经历的链接在这,需要的同学点击传送门:https://www.nowcoder.com/discuss/834599?source_id=profile_create_nctrack&channel=-1

1. 前言

2021年4月面的腾讯cdg的实习,一、二面面经一起总结在一起了,这个部门和大数据联系比较紧密,技术栈是Java和Scala这些。我只会Java,所以面经相关的问题也都是Java的。

总体来说二面的八股文比较常规,但一面有点难,这确实和面试官有关系。

2. 面经问题汇总

2.1 八股文

  • 常规(基本都是二面问的)
    • 1 死锁产生的条件是什么?
    • 2 TCP/IP 三次四次。
    • 3 JVM内存结构讲讲
    • 4 Java的锁有哪些,尽可能说你知道的就行。
    • 5 sychronized和Lock锁的区别,承接上一个问题。
    • 6 TreadLocal 是干啥的?能否简单讲一下?
    • 7 outterJoin和InnerJoin的区别?
    • 8 简历里写了了解设计模式,你是如何理解设计模式的?
  • 进阶
    • 9 要给很多学生的高考成绩进行排序,用什么算法?
    • 10 如果一个后台的服务跑着跑着挂了,你觉得是什么原因?

2.2 算法题

  • 11 二叉树的Morris遍历(一面)
  • 12 n个一组反转链表(一面)
  • 13 字符串转整数(二面)

3. 答案

3.1 八股文答案

1 死锁产生的条件是什么?

图片说明

2 TCP/IP 三次握手四次挥手

三次握手:客户端的连接请求:首先客户端发送一个带 SYN 标志位的连接请求到服务器,客户端进入 SYN-SENT 状态。
服务端的连接确认请求:服务器收到之后回复一个 SYN 和 ACK 的确认报文到客户端,此时服务端进入 SYN-RECV 状态,等待第三次握手。
客户端的连接确认请求:客户端接收到确认报文后,向服务端再次发出带 ACK 的确认报文,后客户端这边连接建立,服务端收到客户端的第三次确认报文后,连接建立。

为什么要三次握手?从第一个角度。通信是双方的行为,双方都需要确认四件事,自身的接收发送是否正常以及对方的接收发送是否正常。如果仅两次的话,服务端是没有办法确认自己发送和对方接收是否正常的,不是可靠的连接。从第二个角度。也可以防止失效连接到达服务器后重新打开连接。客户端发送的请求如果阻塞。那么客户端等待一个超时重传时间以后,会重发一个连接请求。假设这个来迟滞留的请求最终到达了服务器,如果不三次握手的话,服务器就会打开两个连接。如果有第三次握手,客户端就会忽略掉服务器之后的连接确认请求。

四次挥手:客户端发送一个带 FIN 标志位的关闭连接请求,此时客户端进入 FIN - WAIT - 1 阶段。服务器收到该请求后,返回一个 ACK。客户端收到 ACK 之后,进入 FIN - WAIT - 2 阶段,此时处于半关闭状态,服务器能给客户端发消息,但客户端不能给服务器发消息。当服务器把剩下的消息发完之后,会发送一个 带 FIN 标志位的关闭连接请求给客户端。客户端收到该请求后,发出 ACK 确认,并进入最后的 TIME - WAIT 状态,等待 2MSL(最大报文存活时间) 后释放连接。B 收到确认后,释放连接。

为什么要四次挥手?服务端在收到客户端的 FIN 报文后,仅表示客户端不在发送数据了,但客户端还可以接,而服务端也不是说数据都发完了,所以服务端可以立即关闭,也可以再发送一段时间的数据后再发送 FIN 报文给客户端表示同意关闭。因此服务端的 ACK 和 FIN 标志位会分开发送,在 ACK 和 FIN 之间可能还会给客户端传数据,导致多了一次。

3 JVM内存结构讲讲

分两块儿讲,线程共有的和线程私有的来讲。

  • 线程私有
    • 程序计数器
    • 虚拟机栈
    • 本地方法栈
  • 线程共有
    • 堆空间
    • 方法区
    • 直接内存

4 Java的锁有哪些,尽可能说你知道的就行

说了只了解sychronized和lock锁

5 sychronized和Lock锁的区别,承接上一个问题。

图片说明

6 TreadLocal 是干啥的?能否简单讲一下?

图片说明

我总结的文档,面试不用说这么多,点出ThreadLocal是如何实现的就行了:http://note.youdao.com/noteshare?id=29ffa7b20e697cb2408451db7a03bda4&sub=DE005AAA30264B79801683634B134EA4

7 outterJoin和InnerJoin的区别?

图片说明

8 简历里写了了解设计模式,你是如何理解设计模式的?

推荐大家去看一下《Head First 设计模式》的一些内容,不要把中间的引导语忽略,我就是看着引导语才有一种醍醐灌顶的感觉。
我当时的回答是这样的:设计模式其实就是为了把代码中变化的部分和不变的部分给尽可能的剥离开,使得代码的可维护性大大增强。总的来说就是:程序设计的三大原则是最终的目的!设计模式是方法论!继承、多态是实现的基础!

9 要给很多学生的高考成绩进行排序,用什么算法?

桶排序。

10 如果一个后台的服务跑着跑着挂了,你觉得是什么原因?

之前看到过一个很好的思路,从大到小的去找。

  • 网络原因(机房抖动)
  • 机器层面
    • 宿主机问题(硬件上的问题)
    • 虚拟机问题(cpu打满、内存打满、IO过高假死)
    • 中间件问题(Redis击穿了,Kafka废了)
  • 下游服务挂了

3.2 算法题

11 二叉树的Morris遍历(一面)

会有这种遍历方法是我万万没想到的,我觉得这不用死记硬背,能看懂答案,说出思路就可以了。。感觉也不会有太多面试官会考这个遍历方法的。

12 n个一组反转链表(一面)

必刷题,不啰嗦了。

13 字符串转整数(二面)

比较简单,不啰嗦了。

#实习经验分享##实习##春招##腾讯##秋招#
全部评论
morris遍历好像还挺重要的
2 回复 分享
发布于 2022-02-08 01:26
有答案我没写明白的可以在评论区一起讨论哈
点赞 回复 分享
发布于 2022-02-08 00:17
感谢分享
点赞 回复 分享
发布于 2022-02-08 08:24
面试官问项目经历了吗?
点赞 回复 分享
发布于 2022-02-08 10:05
牛啊牛啊,太强了呀!
点赞 回复 分享
发布于 2022-02-08 12:43
🎉恭喜牛友成功参与 【实习经验分享】活动! ------------------- 分享你的实习面经,进行复盘和总结,为大家助力春招!参与即有奖~ 👉快来参加:https://www.nowcoder.com/discuss/832274
点赞 回复 分享
发布于 2022-02-08 15:20
请问用的什么做的思维导图笔记呀
点赞 回复 分享
发布于 2022-02-08 15:39
请问楼主这个部门有转正机会吗?
点赞 回复 分享
发布于 2022-02-08 17:12
bd
点赞 回复 分享
发布于 2022-02-08 18:08
想问问楼主,面试算法的话是用什么写,记事本吗,还是给指定用什么平台,还是只需要说思路😥
点赞 回复 分享
发布于 2022-02-10 17:42
总结很不错
点赞 回复 分享
发布于 2022-02-14 08:56
谢谢分享
点赞 回复 分享
发布于 2022-02-14 23:00
楼主是真的会学习,学习方法学习了想问楼主个问题,可以稍微说下中金的笔面试吗
点赞 回复 分享
发布于 2022-02-20 20:51
感谢分享,支持大佬
点赞 回复 分享
发布于 2022-03-07 11:19
大佬,是base哪里的啊?cdg广告后端进去是给内部人员做开发平台的吗?
点赞 回复 分享
发布于 2022-03-13 17:55

相关推荐

自我介绍之后1.讲了webserver,问怎么实现IO多路复用的2.对于大量的访问还使用互斥锁和信号量还可以吗,应该使用什么对于epoll等待事件到来的时候,是新建了一个线程在等待这个过程吗3.volatile和override关键字4.进程间通信有哪些方式,用过共享内存吗5.内存中有哪些段6.对于data段是什么时候加载到内存里的7.拷贝构造是什么时候被调用的8.static在c语言中和c++中怎么使用的9.智能指针讲解一下10.简历上写了了解RTOS,问了rtos的问题,用过哪些函数11.如果一个低优先级的任务持有一个信号量,高优先级的任务想要用这个信号量,造成的死锁怎么解决12.问了毕业论文的内容,有什么创新点一共问满了三十分钟。反问:组里是做什么的实习生能做什么工作(根据个人能力,有的实习生与正职提交代码量相当),能参与到一些开发工作联想2025届校招正式启动啦!【校招项目】面向应届毕业生,岗位涉及各个业务部门;【全球管培生GFL项目】聚焦全球顶尖院校的高潜质应届生人才,通过轮岗机会/高管一对一指导/定制化培养/优厚的薪酬福利,助你快速提升能力,并致力培养成为联想业务管理者。申请此项目需提交英文简历。❗两个项目可同时投递,早投递早面试,各个专业均有合适的岗位【校招岗位】产品与项目、技术、市场与销售、职能、供应链、设计等【20+工作地点】北京、上海、深圳、天津、武汉、成都、广州、杭州、南京、厦门、长沙、郑州、济南、沈阳、哈尔滨、昆山、南宁、东京、莫里斯维尔等【投递链接】https://talent.lenovo.com.cn/homehttps://talent.lenovo.com.cn/home【内推码】XZLMCWC2025(简历优先筛选,后续有疑问或者流程问题欢迎随时联系)【内推入口】在“联想校招官网”投递校招职位,创建简历时“从哪儿获知招聘信息”选择“联想员工推荐”并且输入推荐人ITcode:XZLMCWC2025
联想
|
校招
|
超多精选岗位
点赞 评论 收藏
分享
44 240 评论
分享
牛客网
牛客企业服务