本文是一位读者的面经分享(最终选择了腾讯),封面为读者本人。我对文章进了重新排版。

每个人成功的经历都不可复制, 我们可以借鉴吸收别人的经验为己所用。非常希望这篇文章的内容可以对小伙伴们有帮助!

另外,把自己上岸的经历分享出来是一件非常棒的事情,我在这里实名为这位读者点个赞

个人介绍

目前大三,本科就读于电子科技大学。

我在大一进入学校实验室学习,负责数据收集、日常开发、NLP。用到的技术包括:

  • 语言:Java、Python
  • 技术:爬虫:协程、异步 OI、正则表达式后端:SpringBoot、MyBatis、MySQL前端:HTML、CSS、JavaScript、BootStrap深度学习:Pytorch、Keras

在实验室接触的比较广泛,不过感觉不够深入,于是在大二下开始深入后端技术。

我在大二下开始做了些开源项目并深入 Java 相关技术,深入学习了:Java 核心技术、Java 虚拟机、Java 并发编程、设计模式、MySQL、Spring、SpringBoot、Mybatis。

在大三上期,11 月开始准备 Java 实习相关事务:

一个月的面试后,陆续拿到了字节,网易、京东、滴滴、腾讯和某区块链公司的 6 个实习 offer。

复习经历

因为之前就深入学习过,所以总的复习时间也不长,大概是一周左右,后面是通过边面试边查漏补缺的方式来补短板。

前两天的复习内容:

Java 基础

  • 面向对象特性:封装,多态(动态绑定,向上转型),继承
  • 泛型,类型擦除
  • 反射,原理,优缺点
  • static,final 关键字
  • String,StringBuffer,StringBuilder底层区别
  • BIO、NIO、AIO
  • Object 类的方法
  • 自动拆箱和自动装箱

Java 集合框架

  • List :ArrayList、LinkedList、Vector、CopyOnWriteArrayList
  • Set:HashSet、TreeSet、LinkedHashSet
  • Queue:PriorityQueue
  • Map:HashMap,TreeMap,LinkedHashMap
  • fast-fail,fast-safe 机制
  • 源码分析(底层数据结构,插入、扩容过程)、线程安全。

Java 虚拟机

  • 类加载机制、双亲委派模式、3 种类加载器(BootStrapClassLoader,ExtensionClassLoader,ApplicationClassLoader)
  • 运行时内存分区(PC,Java 虚拟机栈,本地方法栈,堆,方法区(永久代,元空间))
  • JMM:Java 内存模型
  • 引用计数、可达性分析
  • 垃圾回收算法:标记-清除,标记-整理,复制
  • 垃圾回收器:比较,区别(Serial,ParNew,Parallel Scavenge ,CMS,G1)Stop The World
  • 强、软、弱、虚引用
  • 内存溢出、内存泄漏排查
  • JVM 调优,常用命令

Java 并发

  • 三种线程初始化方法(Thread、Callable,Runnable)区别
  • 线程池(ThreadPoolExecutor,7 大参数,原理,四种拒绝策略,四个变型:Fixed,Single,Cached,Scheduled)Synchronized:使用:方法(静态,一般方法),代码块(this,ClassName.class)1.6 优化:锁粗化,锁消除,自适应自旋锁,偏向锁,轻量级锁锁升级的过程和细节:无锁->偏向锁->轻量级锁->重量级锁(不可逆)重量级锁的原理(monitor对象,monitorenter,monitorexit)ReentrantLock:和Synchronized区别?(公平锁、非公平锁、可中断锁....)、原理、用法有界、无界任务队列,手写BlockingQueue。乐观锁:CAS(优缺点,ABA 问题,DCAS)悲观锁:ThreadLocal :底层数据结构:ThreadLocalMap、原理、应用场景。Atomic 类(原理,应用场景)AQS:原理、Semaphore、CountDownLatch、CyclicBarrierVolatile:原理:有序性,可见性第三天的复习内容:

MySQL

  • 架构:Server 层,引擎层(缓存,连接器,分析器,优化器,处理器)
  • 引擎:InnoDB,MyISAM,Memory 区别
  • 聚簇索引,非聚簇索引区别(从二叉平衡搜索树复习(AVL,红黑树)到 B 树,最后 B+树)
  • MySQL、SQL 优化方法
  • 覆盖索引,最左前缀匹配
  • 当前读,快照读
  • MVCC 原理(事务 ID,隐藏字段,Undo,ReadView)
  • Gap Lock、Next-Key Lock、Record Lock
  • 三大范式

SQL

  • 常用 SQL
  • 连接:自连接,内连接(等值,非等值,自然连接),外连接(左,右,全)
  • Group BY 和 Having
  • Explain

第四天的复习内容:

Spring

  • AOP 原理(JDK 动态代理,CGLIB 动态代理)和 IOC 原理
  • Spring Bean 生命周期
  • SpringMVC 原理
  • SpringBoot 常用注解

设计模式

  • 三种类型:创建、结构、行为
  • 单例模式:饿汉,懒汉,DCL
  • 简单工厂,工厂方法,抽象工厂
  • 代理模式
  • 装饰器模式
  • 观察者模式
  • 策略模式
  • 迭代器模式
  • ....

第五天的复习内容:

计算机网络

  • OSI 模型、TCP/IP 模型
  • TCP 和 UDP 区别
  • TCP 可靠性传输原理:重传、流量控制、拥塞控制、序列号与确认应达号、校验和
  • 三次握手、四次挥手过程、原理
  • timewait、closewait
  • HTTP报文格式1.0 1.1 2.0状态码无状态解决(Cookie Session 原理)
  • HTTPSCA 证书对称加密非对称加密
  • DNS 解析过程,原理
  • IP 协议、ICMP 协议(Ping、Tracert)、ARP 协议、路由协议
  • 攻击手段与防范:XSS、CSRF、SQL 注入、DOS、DDOS

第六天的复习内容:

操作系统:

  • 进程、线程和协程区别
  • 进程通信方式(管道,消息队列,共享内存,信号,信号量,socket)
  • 进程调度算法(先来先服务,短作业优先,时间片轮换,多级反馈队列,优先级调度)
  • 内存管理:分页(页面置换算法:手写 LRU)、分段、虚拟内存

第七天和以后的复习内容:

每天做点刷算法题(剑指 offer、LeetCode 面试 Hot 题) +查漏补缺。

面试经历

字节跳动

第一面

  1. 自我介绍,介绍项目
  2. 协程、线程、进程区别
  3. 手写 LRU(要求用泛型写)、手写 DCL
  4. DNS 解析过程
  5. 输入一个 URL 到浏览器,整体流程
  6. 谈谈 Java 虚拟机你的认识?垃圾回收算法?垃圾回收器
  7. 知道哪些 Java 的锁?CAS 的缺点?

第二面

  1. 自我介绍、介绍项目
  2. 手写最大堆
  3. 设计模式了解吗?几大类型?谈谈工厂模式?
  4. 谈一下 Java 集合框架?HashMap 线程安全的吗?会出现什么问题?
  5. 说说 MySQL 的架构?
  6. InnoDB 和 MyISAM 区别?
  7. 知道聚簇索引和非聚簇索引吗?B 树和 B+树区别?
  8. 一道 LeetCode 难问题:接雨水(动态规划解决)

第三面

  1. 自我介绍、介绍开源项目
  2. 线程池了解吗?原理?可以写个 BlockingQueue 吗?
  3. 说说 fast-fail 和 fast-safe?
  4. 了解死锁吗?怎么解决?
  5. 进程间通信方式?哪种最高效?
  6. 说说 MYSQL 优化策略?
  7. 说了一下部门介绍,主要业务,说可能会转 GO 等等

第四面(HR)

  1. 介绍自己
  2. 团队怎么协作?有没有矛盾?怎么解决的?
  3. 入职时间?实习多久?

华为

第一面

  1. 自我介绍
  2. 谈项目(谈了很久)
  3. HTTP 的无状态怎么解决?(Cookie Session)
  4. TCP 如何保证可靠性传输?(校验和,序列号和确认应答号,重传,流量控制,拥塞控制)
  5. ARP 过程?
  6. 进程调度算法?
  7. 一道动态规划题目:不同路径

第二面

  1. 自我介绍
  2. 谈项目(你觉得收获最大的项目)
  3. 谈谈 Spring AOP 和 IOC
  4. 谈谈你知道的 MySQL 所有内容
  5. 手写个归并排序
  6. 谈谈你对分布式系统的认识?
  7. 谈谈你对华为的认识?华为的文化和价值观?

HR

技术面试都通过了,问 HR 怎么样,说应该没问题,等了一星期 offer,最后发 offer 的时候,HR 说我的性格测试没通过,Offer 审批不下来,人傻了。因为华为在成都,字节在北京,而且技术官的意向是很稳能进华为,我想着在家近的地方实习,在等待的一周中就把字节拒了,最后华为没发到 offer,直接架空,崩溃!第一次找实习没太多经验,策略不对,心里很难受,不过调整了一下,继续了新的面试

网易

第一面

  1. 自我介绍
  2. 介绍一个对自己影响深刻的项目
  3. 说说进程间调度的算法
  4. 说说匿名函数
  5. 说说协程、线程、进程。
  6. 你对游戏引擎了解多少?
  7. 手写地杰斯特拉算法?
  8. 了解 A*算法吗?
  9. 说说 Python 和 Java 的区别?
  10. Java 是怎么进行垃圾回收的?
  11. 然后聊了很多生活上的问题,非技术问题。

第二面

  1. 自我介绍
  2. 介绍项目
  3. 说说深度优先搜索算法、回溯算法
  4. 一道算法题:一个走迷宫问题,DFS+回溯解决。
  5. 你对 C 熟悉吗?Lua 使用过吗?
  6. 介绍业务,主要工作内容。

HR 面

  1. 自我介绍
  2. 介绍一个项目中遇到的问题,怎么解决的?
  3. 介绍一下博客?开源项目?为什么花时间做这些?
  4. 大学最成功的一件事?

滴滴

第一面

  1. 自我介绍、介绍项目
  2. Java 面向对象的三大特性?
  3. 了解 Java 哪些锁?Synchronized 优化内容?锁升级过程?
  4. 谈谈 Java 虚拟机?类加载机制?
  5. 知道双亲委派模式吗?有什么好处?
  6. Java 运行时内存分区?
  7. 死锁了解吗?如何解决?
  8. 哪些对象可以作为 GC ROOTS?
  9. 了解的设计模式?手写一下 DCL 吧

第二面

  1. 自我介绍
  2. 介绍项目(难点以及怎么解决的?)
  3. 谈谈 MySQL 的各种引擎?
  4. 覆盖索引和非覆盖索引区别?
  5. MYSQL 优化方法有哪些?
  6. 讲讲 HashMap 的原理,put 过程?resize 过程?线程安全吗?死循环问题?
  7. 了解什么中间件吗?
  8. 讲讲 Java 里面的锁?
  9. 一道算法题:最长公共子串

HR 面

  1. 自我介绍
  2. 到岗时间
  3. 自己的优势
  4. 大学最失败的一件事
  5. 对加班的看法

京东

第一面

  1. 自我介绍
  2. 谈项目
  3. TCP 如何保证可靠传输?拥塞控制算法?
  4. 讲讲 Spring 的 AOP?
  5. SpringBoot 常用哪些注解?
  6. 谈谈 Java 虚拟机?
  7. 垃圾回收算法有哪些?
  8. 了解哪些垃圾回收器?讲一下 CMS 垃圾回收过程
  9. 算法题:两个栈实现队列最近公共祖先节点

第二面

  1. 自我介绍
  2. 讲讲 Java 集合框架,HashMap 原理。
  3. 知道哪些锁?
  4. 谈谈公平锁和非公平锁?
  5. Synchronized 和 ReentrantLock 区别
  6. MySQL 的索引为什么快?有哪些索引?原理数据结构?
  7. MySQL 有哪些优化的策略?
  8. 死锁了解吗?
  9. ThreadLocal 了解吗?原理?
  10. 手写一个堆排序。
  11. 一道算法题:完全平方数(动态规划)

HR 面

  1. 自我介绍
  2. 多久可以到岗?实习时间?
  3. 对加班看法?
  4. 如何团队分工的?

腾讯

第一面

  1. 自我介绍
  2. 介绍项目
  3. 说说协程和线程区别?
  4. Java 虚拟机的作用?垃圾回收的过程?
  5. 了解的垃圾回收器?
  6. 手写快排
  7. 算法题:按 K 位反转链表
  8. 一百亿个数,n 个机器,怎么排序?(桶排序)

第二面

  1. 自我介绍
  2. 介绍项目
  3. TCP 和 UDP 区别?如何保证可靠性?
  4. HTTP 的状态码记得哪些?
  5. ICMP 是哪层的?有什么用?
  6. 会哪些框架?
  7. Spring 的 AOP 认识?
  8. MySQL InnoDB 和 MyISAM 区别?
  9. 谈谈各种索引?为什么用 B+树不用 B 树?
  10. 死锁的条件?如何解决?
  11. OOM 怎么排查?
  12. 介绍业务

HR 面

  1. 自我介绍
  2. 多久能来实习?实习多久?
  3. 加班看法?
  4. 看你掌握技术挺多,如何快速学习一个技术的?

总结

因为之前学的也比较深入,复习时间也没用太多,主要就是写点算法题保持手感。

面试中遇到的问题,9 成都已经复习了,而且也比较基础,也都在掌握之中。

像中间件、微服务这些我没写在简历上,不是很会,面试官也不会刻意刁难你,实习的话,感觉大厂可能更注重基础和对知识的深入度,面试了一个月收货还是挺多的,希望总结一下面经,帮到更多的人~

准备大厂面试的话,注重基础,多练算法题,基本上就没问题了!加油!

学习资料推荐

这是我认为最牛皮的一份Java核心知识文档,工作五年以下的Java程序员学透这一份文档就可以了!这不仅仅是一份学习资料文档,同时这一份目录还指引出学习路线该是怎样的;

1-3年高工:

  • 并发编程进阶(并发工具类实战+CAS+显示锁解析+线程池内部机制+性能优化)
  • JVM深度剖析(理解运行时数据区+堆外内存解读+JDK+内存泄漏问题排查+Arthas+GC算法和垃圾回收器+类加载机制等)
  • MySQL深度进阶
  • 深入Tomcat底层(线程模型+性能调优)

3-5年资深:

  • 数据库(调优+事务+锁+集群+主从+缓存等)
  • Linux(命令+生产环境+日志等)
  • 中间件&分布式(dubbo+MQ/kafka、ElasticSearch、SpringCloud等组件)

5-7年架构:

  • 开源框架(Spring5源码+SpringMVC源码+Mybatis源码)
  • 分布式架构(Zk实战+RabbitMQ+RocketMQ+Kafka)
  • 高效存储(Redis+mongoDB+MySQL高可用+Mycat+Sharing-Sphere)
  • 微服务架构(RPC+SpringBoot+SpringCloud Netflix+SpringCloud Alibaba+docker+k8s)

由于篇幅有限,无法在此完全展示,下面只展示截图,读者朋友可以收藏+关注小编之后点击传送门即可获取《面经总结》

准备面试必不可少的是什么呢?

答案肯定是刷题、刷题、刷题了,不需要管真实工作是不是拧螺丝,你要做的就是把你造火箭这一关给过了;

我的刷题文档:

这一份文档共485页,仅仅看下面的截图就可以看出此份文档的含金量,千道面试题文字+代码+配图一一为你详细解答,香不香,自己品;

如何领取?

收藏+关注小编之后点击传送门即可获取《面经总结》

2021,你值得看的华为/字节/腾讯/京东/网易/滴滴面经分享相关推荐

  1. 2021年度值得学习的100个案例榜单

    当前数字化的浪潮已经席卷了整个行业,数字化转型已经不再只是科技公司的事情,几乎各行各业都涉及到了数字化的转型或升级问题. 驱动企业数字化转型不止是降本增效.业务增长.商业创新.获取竞争优势等企业内驱力 ...

  2. 华为p40pro手机计算机在哪里,一文看懂华为P40/P40 Pro差别在哪

    中关村在线消息:北京时间2020年3月26日,华为在线上举办新款旗舰产品发布会,会上发布了三款重量级手机新品:华为P40.华为P40 Pro和华为P40 Pro+. 在正式发布新品前,华为总裁余承东发 ...

  3. mate40pro5G升级鸿蒙,华为Mate40 Pro+5G+鸿蒙系统,下半年最值得期待的华为旗舰机?...

    原标题:华为Mate40 Pro+5G+鸿蒙系统,下半年最值得期待的华为旗舰机? 华为手机作为国产手机的老大哥,在核心技术的创新上是国产手机厂商中的佼佼者,在研发的投入上更是行业里首屈一指的.在产品上 ...

  4. 看完华为这篇面经,我再也不用担心面试了(应届生)

    第一轮 专业面 一对一的专业面,面试官都不是HR,应该部门经理级别的人吧,所以问的问题还是侧重专业的.面试官面完一个人就出来喊另外一个人进去面试,面完好几个人之后,HR就过来给大家念名单,有些人就是叫 ...

  5. 资源 | 一文掌握机器学习所有值得看的视频、课程、工具

    越来越多的开发者和学习者转投人工智能,但很多人鉴于跨行的难度,并不知道如何开始学习人工智能和机器学习.本文是作者Arun Agrahri整理的一些优秀文章,内容包括启发阅读和学习资源以及工具,希望能对 ...

  6. 第一款鸿蒙摄像头,随时随地看一看!华为首款鸿蒙智能摄像头发布

    原标题:随时随地看一看!华为首款鸿蒙智能摄像头发布 当我们进入科技飞速发展的时代,越来越多的角落开始布控了一些摄像装置.截止到如今,不仅仅在一些公共死角位置安排了电子猫眼,一些养了宠物的年轻人也在家中 ...

  7. 软件:分享9款实用电脑软件,值得看一看

    今天给大家分享9款实用电脑软件,值得看一看. 01.ArcTime 下载地址:https://arctime.org/ 这是一款特别好用的字幕制作软件. 只需导入视频和字幕文件. 它的制作模式不仅支持 ...

  8. 一篇很值得看的伤感日志:因为你不喜欢我,所以你不明白

    一篇很值得看的伤感日志:因为你不喜欢我,所以你不明白 - 一篇很值得看的伤感日志:因为你不喜欢我,所以你不明白 因为你不喜欢我 所以你不明白 我经常去看你空间的意义 只想了解你的最新情况 因为你不喜欢 ...

  9. 2021双十一活动:华为云服务器体验活动,免费领取50G云硬盘,邀请参加再送价值200元华为无线鼠标键盘套装

    2021双十一活动:华为云服务器体验活动,免费领取50G云硬盘,邀请参加再送价值200元华为无线鼠标键盘套装 目前华为云推出云服务器体验活动支持广大公有云开发者: 华为云服务器体验活动,免费领取50G ...

  10. 零基础学习java值得看的几本书

    零基础学习java值得看的几本书",下面小编就为大家一一介绍零基础学习java值得看的几本书分别是什么? 1.<Java学习笔记> 此书的特点在于里面有很多作者对Java语言的独 ...

最新文章

  1. 设计模式 — 创建型模式 — 单例模式
  2. logo、展板、彩页、手提袋总结
  3. 支付宝放出数字化经营新神器,可提升商家60%消费频次
  4. Java内部类是什么?
  5. Go36-32-context.Context
  6. python名词解释数据仓库_python实现数据仓库ETL
  7. php 如何将100w级的数据入库。
  8. android api (82) —— InputConnection [输入法]
  9. 解决eclipse编辑jsp、js文件时,经常出现卡死的问题
  10. MOSSE相关滤波跟踪算法(二)
  11. c语言 iostream,C语言 我应该在哪里使用iostream类?
  12. 云服务器温控系统,服务器cpu温度监控软件
  13. soap错误码和获取处理错误码的详细信息
  14. CRMEB打通版简单一步实现类似京东的PLUS会员功能
  15. python实验——第一次
  16. 如果早晚都要死去,为什么还要活着?
  17. 尚硅谷--尚品汇项目笔记
  18. 陈曦北理工电子工程系_全国大学生电子设计竞赛获奖作品汇编(第一届~第五届).pdf...
  19. PLSQL的存储过程和函数
  20. 五年Android,靠着这份资料,我从无名小厂成功跳槽字节

热门文章

  1. 485终端电阻怎么接?485终端电阻接法解析
  2. CF949D Curfew solution
  3. OpenHarmony鸿蒙 润和Pegasus套件样例--智能安防
  4. linux工具之screen
  5. 数据结构 排序 思考题 3
  6. 信息系统安全期末复习笔记
  7. 网络教育本科统考计算机和英语作文,远程教育本科统考英语真题及答案
  8. 12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】
  9. 郭敏:高速公路“过山车”式限速乱象的根本并非技术问题,而是管理协作机制缺位...
  10. in作为介词的用法_介词in的用法