热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)

本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。

我20年的十二月份之前一直在一家中型互联网企业做后端,接近十二月中旬工作交接完成后正式离职,我为什么离职?很简单,就是想去更大的企业,让自己有更大的发展空间和学习空间,就毅然裸辞了(注:大家不要学我裸辞,请慎重考虑)。

之后就一直在准备接下来的面试,如标题所示,我的目标就是这几家企业(网易、腾讯、CVTE、字节),其中就想去的还是字节。接下来就是和大家分享一下我的面试经历和面试所问到的问题。


文章后半段会分享一些我个人总结的大厂最新“面试真题笔记含答案”,需要完整版的朋友点击传送门即可!!

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

一、CVTE一面:

  • 稳定性设计

  • 项目难点

  • 数据库连接超时问题

  • 数据库优化

  • 索引计算,为什么会失效

  • 数据库索引结构

  • 聚簇索引,非聚簇索引的区别,回表问题

  • 数据库的数据隔离级别,分别会出什么问题

  • 生成订单,还没提交,发送一条mp消息去发货,但可能出现查询不到的订单状态情况

  • 幂等性的保证

  • 分布式锁的设计

面试后续:面试的结果过三天就出了,因为时间的问题,二面就推迟到挺后的,但是因为要走其他公司的面试流程,我综合考虑了一下,还是放弃了二面的机会,但还是非常感谢CVTE提供的面试机会!

二、腾讯三面(这几家企业唯一挂掉的)

腾讯的面试难度还是比较高的,面试官也是非常的严肃和专业,当你踏入房间时的那一刻,就可以感受到严肃的氛围。

一面:


  • 服务部署的形式?如果某个机房宕机了呢?是依赖组件还是业务自己做的?了解这块是怎么做的?

  • 流量突增平台会怎么处理?

  • kafka在业务中的使用场景

  • 针对项目中的一个小问题,了解整个调用链路

  • 线程交叉打印12A34B56C,多种实现方式(一个打印数字,一个打印字母)

  • Synchronized和lock的区别

  • synchronized的锁优化是怎么样的

  • String str=new String (a+b)会创建几个对象?字符串常量池在Jvm哪个位置

  • spring的设计模式?工厂模式是怎么实现的?

  • kafka的精准一次是怎么设计的?平时为了防止重复消费是怎么做的?

  • 哨兵模式是为了解决什么?整个流程大概是怎么样的

  • Java进程不见了,怎么定位?

  • mysql的事务特性?原子性是怎么实现的(通过undo log日志实现)

  • mysql的默认隔离级别?什么是不可重复读

  • select poll epoll的区别?epoll的数据结构

  • TCP三次连接,这个listen backLog有什么作用

  • TCP四次挥手,Time WAIT发生在哪里?两个超时重传时间的作用?大量 timeout怎么处理?

  • https的加密过程?证书认证的过程

  • 进程间的通信方式?有哪些信号通信是不可靠的?为什么是不可靠的?

  • 线程死锁的情况,怎么解决?

  • 1 2 35 5 35 2 56 统计2 35出现的次数,按序排序

  • 请求出现超时,但应用查不到这个请求日志,怎么排查

  • 僵尸进程怎么解决?协程有了解过嘛

二面:


  • 算法题:一个字符串,一个子字符串,判断子字符串在字符串中出现的次数,不要求连续,但有先后顺序 s=rabbbit t=rabbit,出现的次数为3

  • 项目的挑战

  • Kafka和rocketMq的区别

  • 本地缓存和redis缓存的区别

  • 本地缓存的场景

  • redis的数据更新策略之类

  • redis的部署方式,集群部署的丢失数据,主备切换过程

  • Flink使用了什么功能

三面:


  • 项目介绍

  • 在项目中用了spring boot是怎么使用的?

  • 线程池项目中怎么使用,遇到过什么问题

  • Hashmap的了解

  • threadLocal项目中怎么使用

  • 乐观锁和悲观锁的区别,项目中的使用

  • 题目:生产者和消费者的实现,wait 和notify

  • Synchronized 和ReentrantLock区别

  • CPU的内存模型

  • Java的内存模型

  • tcp的可靠性保证

  • 为什么索引能查询速度

  • redis的数据结构,排行榜的实现

  • 分布式事务的实现

  • spring事务

  • spring bean的储存

  • Java数据源怎么使用

后续:最终还是挂在了三面,其实总体下来面试还算可以,就是自己还是面试之前没有做好充分的准备,导致在第三面有些发挥不好。

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

三、网易二面:

一面:


  • guava和caffeine的区别

  • HashMap作为本地缓存和caffeine的区别,本地缓存一般占用多少内存

  • jvm的堆内存配置大概是怎么的,如果设置了堆内存的初始值为2g,启动的时候分配给这个进程的内存是多少

  • 容器内存为3g,堆内存为2.8g,会有什么问题

  • 创建很多线程池,导致oom,这种跟因为本地缓存太多导致的oom有什么区别

  • 堆内存和栈内存的区别

  • redis缓存的数据一致性问题,分布式锁是怎么样的

  • redis集群的架构是怎么样的

  • HashMap是线程安全的吗?ConcurrentHashMap是怎么实现的

  • Synchronized锁的实现

  • 锁优化是怎么样的,偏向锁是怎么样的

  • 采用的是什么垃圾收集器?CMS跟其他老年代垃圾收集器的区别?CMS跟G1的区别

  • 动态代理的区别

  • Spring Aop的实现

  • zookeeper的ZAB协议

  • 项目中主要负责的是什么?方案设计大概是怎么样的,比较难的问题以及是怎么解决的

  • future.get()是怎么实现的,futureTask的了解

  • 服务怎么做高可用,进程是怎么监控的

  • 在浏览器上输入一个网址,大概执行过程,链路层,网络层路由器选择

  • 操作系统的内存管理

二面:


  • 细聊了一下项目

  • 数据库的索引,存储引擎的一些问题,平常怎么优化

  • 缓存的一些基本问题,一致性怎么保证,大概架构

  • 服务高可用的实现

  • Kafka的大概介绍,可靠性保证,重复消费问题

  • 项目难点

  • 一致性算法介绍

后续:网易的前两面是过了,但是因为刚好遇上了过年,第三面就约在了年后,时间跨度太长了,因为年后我还要去字节面试,相较于网易我更想去字节(不是因为网易不好,只是个人比较向往字节),就拒绝了。

但是还是得吐槽一下网易的面试结果一般是7到10个工作日才知道,太持久了......。

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

四、字节四面(终获心仪offer)

一面:


  • 负责模块的介绍,了解

  • 服务怎么做高可用

  • 本地缓存时效性

  • mysql和redis数据的一致性,怎么保证

  • redis集群部署介绍,get key从发起请求到获取值的过程

  • redis的内部一致性是怎么实现的,RDB快照的过程,为什么fork进程能够读到快照数据?全量和增量复制的区别

  • redis数据结构介绍,hash结构介绍,zset底层实现跳跃表的实现,跳跃表时间复杂度

  • 询问项目中的一些细节问题

  • 分布式锁原理介绍,释放锁如果不用lua脚本会出现什么问题

  • .Mysql主键一般怎么使用?如果使用自增id的话,返回的记录给前端展示,很容易看出项目的大概记录数,有没办法解决?

  • 自增id可以怎么生成?雪花算法介绍?容器部署,怎么保证雪花算法里面的work id?分布式id生成器介绍?

  • 雪花算法里的时钟回拨问题

  • .高性能id生成算法,有什么好的解决方案

  • Mysql联合索引介绍

  • Mysql索引数据结构?聚簇索引和非聚簇索引的区别?

  • Mysql事务隔离级别的介绍?幻读是什么?幻读的解决方案?普通select和加锁select的区别?乐观锁怎么做?

  • JVM的了解,介绍一下从new对象到垃圾回收的整个过程

  • JVM调优,一般怎么做?具体描述一下内存泄露分析的过程,怎么发现,怎么解决

  • 算法题:二叉树的左视图

二面:


  • 算法题:给出不同服务之间的调用时间,找出链路的最长调用时间(ms)

(A,B,100) (B,C,200),(A,D,200)

最长调用时间为300m3, A 到 B 到 C


  • 项目了解



  • 分布式事务,缓存,mysql基本知识,jvm调优

三面:


  • 细聊了一下项目

  • 算法股票利润最大化(只交易一次,还有可交易多次leetcode原题

  • 继续聊项目,主要讲自己负责的项目模块,难点之类

  • 缓存一致性问题保证

  • Kafka消息可靠性保证,出现重复消费,幂等性怎么保证

  • 线程模型,处理网络连接、客户端请求的线程的区别

  • https密钥交换过程,公钥怎么保证是正确可靠的

  • 网络的7层模型,每层大概作用是什么?tcp连接后,路由器突然断开了,需要重新连接嘛

  • 进程间的通信方式,共享内存的通信方式,给了几个场景问题

  • 平常的学习方式,怎么提升技术

四面:


  • 感觉前面面试的怎么样,之前面试的算法有没其他最优解

  • 项目整个系统设计是怎么样的?由哪些模块组成?不同模块之间是怎么串联的?模块的边界问题?怎么权衡?可能存在什么问题,可以怎么优化?

  • 针对项目的部分模块进行提问,数据一致性保证?传输的数据有没加密,没加密会出现什么问题?怎么解决

  • 工作期间的最大挑战

  • 系统稳定性问题,怎么处理

  • 平常做业务的模式大概是怎么样的?

  • 同事是怎么评价你的?

HR面:

跳槽原因、平常学习方法、爱好、期望薪资等。

后续:多亏了面试字节前做的准备还算是很足的,所以总体的面试过程还是蛮顺利的,字节的面试还是得夸夸的,面试官很和蔼,所以面试的氛围蛮轻松的。不久后,我便收到了offer。

五、面试真题笔记(含答案)分享:

面试前和面试阶段,我个人整理总结了不少的“面试真题笔记”,现在分享给即将在金三银四面试的朋友们,希望对你们有所帮助。

有需要的朋友点击传送门即可获取!!

Java架构面试手册:

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

Java面试问题集:(Java基础部分+算法与编程+html&Javascript&ajax部分+Java web部分+数据库部分+XML部分+流行的框架与新技术+软件工程与设计模式+j2ee部分+EJB部分+webservice部分+其它

非常全面

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

JVM面试专题以及答案:(涵盖JVM所有常见面试题

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

MySQL面试专题以及答案:

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

Redis面试专题及答案:

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

Spring boot面试专题及答案:

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

Spring cloud面试专题及答案:

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

还有很多就不全做展示的,需要完整版的朋友,点击传送门​​​​​​​即可!!已经为大家打包好了。

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

总的来说,这几个月的奔波,虽然很辛苦,但是自己也收获到了不少。其实当你走进大厂的那一刻,不仅仅可以领略到大厂的面试风格和难度,他们的管理,工作效率都是值得学习的。所以当我拿到这份offer的时候,我觉得这几个月的奔波和辛勤学习都是非常值得的。

以上所分享的面试真题笔记的完整版,需要的朋友点击传送门​​​​​​​即可!!


推荐阅读
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
author-avatar
小鬼shenzhen
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有