凉了,过程有些忘了,记得了再补。面的研发岗,自己平时主做JAVA。
一面:40分钟
1.一开始写算法,爬楼梯,一次只能爬一阶或两阶,n阶楼梯共几种爬法。(写递归,非递归,还有复杂度为(logn)三种,第三种我写不出来);
2.就着项目问,mysql调优,索引原理,explain,文件排序,以及给出条件问我怎样建索引比较好;
3.知道java几种map,hashmap底层如何实现(数组+链表+红黑树),时间复杂度如何;
4.JAVA垃圾回收机制;
5.redis有哪几种存储,底层如何;
6.我简历里写前端用过React,问React生命周期;
二面: 50分钟
1.自我介绍;
2.项目哪里做得最好,详细说下,然后设计相关知识点,包括elasticsearch索引原理;
3.写代码,快排,写测试;
4.写代码,一棵树,给你几个节点,找出他们的最小公共祖先节点;
5.tcp的ACK在哪会用到;
6.计算机从快到慢的结构是哪些;(要详细,但我只记得cache,内存,硬盘什么的……)
7.虚拟地址;(不会啊,都不知道操作系统会问这些,我天真的以为只会问死锁?)
问题大致这些,但都会涉及和扩展挺多。

本文分享了一次软件研发岗位面试的经历,涵盖了一面和二面的具体问题,包括算法题、项目细节、数据库优化、Java核心技术及框架、React等前端知识、TCP协议等网络概念。
3842

被折叠的 条评论
为什么被折叠?



