2021秋招助力,腾讯Java 123+HR面面经分享,大厂还是香啊

本文分享了一位粉丝成功通过腾讯Java面试的经验,涵盖了网络、Java、实习项目、算法等多个方面的问题及答案。文章强调了TCP/IP的三次握手、Java中的抽象类与接口、线程并发概念以及面试中遇到的实际项目问题。还提供了相关面试资源供读者参考。
摘要由CSDN通过智能技术生成

内容来自一位粉丝的面试经历,由我整理成文发布,希望对正在秋招的同学们有一些帮助,点赞的都进大厂[呆无辜][呆无辜]

文末有一份我整理的最新Java面试八股文,需要的同学可以自取!

那话不多说,一起来看看这位同学是怎么拿到腾讯的offer的。

8.25 19:30 - 20:30 一面

网络:

  • tcp三次握手失败,tcp会如何操作?

答:

这个问题的本质是判断我们对tcp的状态转换是否能有比较深刻的理解。只要理解了下面的状态转换图,很容易回答上述问题。

在此,将《TCP/IP协议族》中每一个状态的转换伪代码整理下:

第58行指明了当第三次握手失败时的处理操作,可以看出当失败时服务器并不会重传ack报文,而是直接发送RTS报文段,进入CLOSED状态。这样做的目的是为了防止SYN洪泛攻击。

  • 输入URL流程

答:

1.URL解析:

2.DNS查询

3.建立TCP连接:

4.发送HTTP请求

5.服务器永久重定向

6.服务器处理请求

7.返回响应结果

8.浏览器接受响应

9.HTML解析

10.断开连接

篇幅所限,这里就不展开讲了,简单提一下,不理解具体原理的同学可以看看我这份《计算机网络面试题集》,在里面会有详细的论述

点击传送门直接领取。

Java:

  • 抽象类和接口的区别,使用场景

答:

区别:

① 抽象类有构造方法,接口没有构造方法

② 抽象类可以包含普通方法,接口中只能是public abstract修饰抽象方法(Java8之后可以)

③ 抽象类只能单继承,接口可以多继承

④ 抽象类可以定义各种类型的成员变量,接口中只能是public static final修饰的静态常量

使用场景:

1.抽象类的使用场景

既想约束子类具有共同的行为(但不再乎其如何实现),又想拥有缺省的方法,又能拥有实例变量

如:模板方法设计模式,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中某些步骤的具体实现。

2.接口的应用场景

① 约束多个实现类具有统一的行为,但是不在乎每个实现类如何具体实现

② 作为能够实现特定功能的标识存在,也可以是什么接口方法都没有的纯粹标识。

③ 实现类需要具备很多不同的功能,但各个功能之间可能没有任何联系。

④ 使用接口的引用调用具体实现类中实现的方法(多态)

  • 枚举类的使用场景

答:

  1. 单例

  2. 有穷对象的集合

实习项目:

  • 介绍一下微众的项目
  • 什么叫CICD
  • 做了什么事情,为什么用Github Actions,不用Jenkis,有什么区别吗

项目:

  • 运行流程
  • 架构设计
  • 如果输入一个请求,怎么跑的

项目这块根据自己的项目经验答就行了,我当时答的是一个在线会议系统项目,

点击传送门直接领取。

线程并发:

  • 什么叫同步异步

答:

同步,就是A要从B得到一些结果,A等着B出结果,B做不完A就一直等着。同步就相当于顺序执行。

异步,就是A要从B得到一些结果,A告诉B它要结果,然后做自己的事,B做完后通知A结果是xxx。异步的意思就是非顺序执行的。至于执行的顺序是什么,这是不确定的。而某个任务要执行到什么时间结束,这要看分给这个任务的CPU时间。时间到了就结束(分时系统,大部分情况都是这样)。

  • 什么叫阻塞非阻塞

答:

当你把水放到电水壶里,按下开关后,你可以坐在水壶前面,别的事情什么都不做,一直等着水烧好。你还可以先去客厅看电视,等着水开就好。

对于你来说,坐在水壶前面等待就是阻塞,去客厅看电视等待就是非阻塞。

阻塞请求:A调用B ,A一直等着B的返回,别的事情什么也不干。

非阻塞请求:A调用B,A不用一直等着B的返回,先去忙别的事情了。

所以说,阻塞指的是调用方一直等待别的什么事都不做;非阻塞指的是调用方先去忙别的事情。

算法:

  • 合并有序链表
  • 简化Linux路径

这两道算法题还是挺简单的,也比较常见,面试之前就刷过,这里也不展开讲了,不会做的可以看看我之前刷题的一本手册

点击传送门直接领取。

一面二面和HR面我就都不展开讲了,不然这篇文章太过冗长了,把面试官问的问题贴出来给大伙看看,不会的题可以自己去网上找找答案。

8.30 20:00 二面

实习项目:

  • 介绍一下微众的项目?介绍我参与的事情?
  • 什么叫CICD?
  • 遇到了什么困难?怎么解决的?

项目:

  • 介绍一下项目的架构设计
  • 讲解了我怎么设计负载均衡算法的,以及每种策略的适用场景
  • 注册中心是如何实现服务的发现和引入的
  • 注册中心能否处理容灾情况(不能,我都没有那么多服务器,哪里来的容灾功能)

Java:

  • 正则表达式(尬住了,这个没怎么用)
  • 引用传递和值传递的区别
  • Java 是面向对象的语言,你是怎么理解的,相对于 C 语言,你感觉有什么优势呢

网络:

  • 三次握手过程
  • 如果第三次握手没有回复会出现什么情况
  • 这种机制有什么缺陷吗(SYN 泛洪攻击)
  • SYN 泛洪攻击怎么解决

9.1 10:00 - 10:30 三面

实习项目:

  • 介绍一下微众的项目?介绍我参与的事情?
  • 什么叫CICD?
  • 遇到了什么困难?怎么解决的?

数据结构:

  • 给一个场景:有很多图片,然后我们需要对图片进行存储,以及查找,有什么数据结构比较适合?
  • 如果我要加速查询的速率,你要怎么设计?

架构设计:

  • 如果一台服务器,然后要对单机进行拓展,你要怎么设计后续的拓展工作?

操作系统:

  • Linux 怎么进行解包的?
  • 你刚才讲到里面有两个过程,一个是中断,一个是复制,你会怎么处理这两个过程,使其加速?(我扯了 Netty 的零拷贝机制,但好像不对,面试官说我的思路很有趣)

网络:

  • TCP 保证可靠性传输的手段有哪些?

面完不到半个小时,内推我的师兄就发微信来恭喜我,发现官网变成了等待 hr 面的状态。

这里要夸一波面试官,面试官在我讲的时候闭麦,安心听我讲完,对于我答得不是很好的地方也会指出来,nice!而且三面的面试官问我对网络通信是否感兴趣,那可太有兴趣了,不然我也不会去看 Netty 的源码hhh

9.7 11:00 - 11:30 hr面

聊天为主:

  • 地区
  • 职位考虑
  • 对于 offer 的选择
  • 成绩情况
  • 为什么不读研
  • 实习做了什么
  • 对于腾讯的看法
  • 更看重哪些方面
  • 秋招进度

好了,就写到这里吧,今年三月份以来我就一直在有意收集面试真题,到现在总算是整理出来一份Java面试八股文,

点击传送门直接领取。那先这样,溜了溜了。

对了,小伙伴们面试中有遇到过奇葩问题吗?有的话,欢迎发在评论区跟大伙交流哦

好了,真溜了[吐舌]

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北游学Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值