针不戳!java后端开发岗面经分享,面经+知识点+总结!

写在前面

大家好,这是一篇超长面经+总结,是对自己上一阶段的梳理,也希望给以后准备找工作/正在找工作的同学们多多少少一点帮助。

基本介绍:普通985本+海外渣硕,大二转到CS专业,大三项目交流3+2,19年10月留学毕业,有工程项目,无实习无额外加分项,主Java研发岗,非battmd级别选手,加一起拿了4个offer,最后准备去星环了。

一,面经集合(按公司划分)
最早是去年的12月开始,中间有几个月在研究室抗压没有面,考虑到读者的阅读喜好所以按公司划分面经,强调一点是时间线很重要,前后自己面试能力也有差距,请留意。一般都是远程视频/电话面,每场面经内问题提问顺序不定。一些过于水的面经没有包括在内(比如8月前的某为,银行)

字节跳动

字节跳动一面12.24(游戏研发 秋招补招)

程序:

1.实现优先队列

2.设计2D游戏功能 输入两个角色位置 输出射击转向角

3.环形buffer设计

提问:

1.二叉树与堆的关系

2.B+树

3.时间复杂度

4.内积点乘叉乘

5.CAS机制

6.重载 重写和多态

字节跳动二面12.28

1.内积点乘叉乘

2.堆

  1. 排序 各种数据结构

  2. 时间复杂度空间复杂度分析

  3. 集合类中为什么不用int(为什么Java集合不能存放基本数据类型,只存放对象的引用)

  4. 同步和异步

  5. 多态

  6. TCP表头

  7. 四次挥手

字节跳动一面3.30(服务器研发 春招)

  1. 链表k次反转

  2. DB语句查询比平均分高的学生总数

  3. 如何查询IP地址是否在国内网段

  4. 线程池

  5. Reentrantlock

  6. synchronized

  7. 组合索引

  8. JVM内存结构,类加载信息存储在哪

9.数据库的隔离级别

  1. cookie在http报文的那个位置

字节跳动二面3.30

  1. 磁盘文件到JVM的加载过程

  2. 类存在的意义

  3. 如何确定session存放值比如用户id

  4. 手写生产者消费者模式

  5. a数组用b数组顺序排序

字节跳动7.17(研发 秋招提前批)

  1. 查找树中连接两个节点最大路径

  2. 进程间通信效率最高的方式

3.共享内存怎么实现

  1. Mysql四种隔离级别

5.Mysql InnoDB和MyISAM区别

  1. Mysql profile是做什么的

  2. Redis负载均衡 热键和大键的影响

8.Redis主从机制 分片分布式

  1. 缓存怎么实现

  2. LRU和FIFO

  3. 分页原理

12.tcp拥塞控制

  1. http报文头结构

  2. http报文长度边界字段

字节跳动8.18(秋招)

  1. http和https

  2. time-wait和close-wait

  3. 最左看二叉树第一个节点

  4. mysql左前原则

  5. innodb索引 b+树子节点一定存表行信息吗

  6. redis持久化 主进程和子进程

  7. 有序集合数据结构怎么实现

  8. jvm判断回收

  9. minor gc和full gc

  10. 类加载过程

  11. java四种引用

  12. 方法区

  13. 项目

  14. 队列集合怎么实现的,有哪些

  15. 类加载过程的不足

  16. blockingqueue怎么实现阻塞

  17. 哪些对象可以作为gcRoot

字节跳动8.18二面

  1. dns过程

  2. dns递归调用和叠代调用

  3. tcp可靠性含义

  4. tcp可靠性应用

  5. 拥塞机制

  6. 长连接短链接

  7. http常用首部字段

  8. select函数,epoll函数

  9. 静态链接库和动态链接库

  10. 进程和线程

  11. 编译和链接的区别

  12. 最大连续和dp解法

面试总体体验很好很全面,我基本都是二面挂,每次都是面挂之后总结重新刷新知识库,然后学习很多。

阿里

阿里巴巴7.24(一二面在一天,秋招提前批)

  1. 项目

  2. 大数据优化内容

  3. 口述程序整数反转

  4. zk的作用

5.kafka的partition

  1. kafka中一个broker故障,会怎么办

  2. flink如何实现exactly-once语义

  3. flink的实现原理

  4. 其他流处理框架与flink的区别

  5. spark如何处理流处理

  6. storm如何处理流处理

  7. lambda框架原理

  8. 如何解决超卖问题

  9. 如何用算法解决高并发

  10. 如何大数据快速查询一条数据

  11. redis存储数据,在工程中的作用

  12. 怎么做evaluation验证flink效果

阿里准备的最多,面试官安排了三面,不过和三面面试官商量了下,我10月毕业,他们招11月之后的,为了怕被泡池子(因为能力并不突出)还是放弃了。

腾讯

腾讯 3.7一面(春招实习)

  1. Java多态的实现

  2. TreeMap和HashMap的区别

3.MySQL索引底层的实现

  1. 什么是NoSQL,NoSQL的常见应用

  2. Redis的数据结构

腾讯3.8二面

  1. GC是怎么判断年代的

  2. 浮点数怎么存储

  3. 什么是TTL,什么是TraceRoute

腾讯3.20三面

1.项目,大数据框架了解

2.GC回收

  1. 网络查找命令

  2. Linux磁盘命令

5.网络第二层和第三层有什么区别

6.linux的常用指令

面试官说理论还可以,具体操作能力不行。。

腾讯 8.9(秋招提前批)

自己讲:

  1. JVM

  2. linux内核

  3. zookeeper

  4. kafka消息队列

  5. 数据库mysql和redis

  6. 分布式事务

  7. 微服务框架

  8. 网络攻击

  9. 代码耦合性

  10. 项目完成背景

  11. TCP,UDP

期间提问:

  1. Zab协议

  2. 进程地址存储

  3. 网络编程IO多路复用

  4. 网络传输模型

  5. IO过程

  6. 新的微服务框架

王者荣耀项目组。。。我还说我不喜欢玩王者哈哈哈(一个半小时脑子晕掉了)

拼多多

拼多多3.25 一面(春招 java岗)

1.jsp到servlet过程,servlet生命周期

2.http与https区别,传输过程,如何交互

  1. hashmap结构,concurrenthashmap结构

4.线程池声明与使用

  1. JVM内存模型,垃圾回收

  2. Tomcat运行原理

  3. 手撸死锁模型

  4. 流处理与批处理区别

9.storm和flink的区别

10.怎么学习的

拼多多3.28 二面

  1. 手撸适配器模式

  2. 手撸代码并查找边界错误

  3. Spring MVC框架

  4. BASE原则

  5. 分布式原理CAP原则

  6. Java反射

  7. private属性,final类型举例

  8. ReadWriteLock

  9. 数据库-四种隔离级别-脏读/幻读/-索引

微信视频面,最后问了我要不要去大数据研发,我拒绝了,当时比较傻缺

晨星

晨星3.26(一面)

  1. 网络:tcp udp区别

http协议介绍

  1. 面向对象 抽象类和接口区别

3.单例模式实现

  1. 数据库索引

  2. Js怎么面向对象

  3. 装饰器模式原理

7.静态类和单例模式有什么区别

  1. 设计一个股票推送的设计模式

  2. 容错分析题:页面加载慢原因

晨星二面(留的作业)

1:请在数据库设计两个表,分别存储股票每天的交易数据表,和上市公司的运营数据表

,画出相应的数据表和对应关系。

  1. 请用TF-IDF算法计算相关度,并采用适当的机器学习训练模型来进行训练,找到更高的筛选文档准确率

3.聊人生

然后就是hr面了
最后我为大家准备了一些Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等,点击这里免费获取。

你可能感兴趣的:(Java,面试笔记,程序员,分布式,数据库,编程语言,java,redis)