投的Java后端开发岗位,面试基本没怎么问java知识,后来问面试官说这边技术栈golong为主,进去也会转语言。
三面技术,在牛客网在线视频面试
一面
进程通信的方式有哪些
linux中管道的底层原理
tcp四次握手流程
tcp传输中慢启动原理
linux中seletc和epoll原理
聊了聊项目
问了java线程池的核心参数,以及运行原理,
如何确定线程池线程数大小,为什么
算法题:
①给你一个整数 n,使得从 n 中删除 k 个数字之后的数字最大。
输入:n=1432219 k=3
输出:4329
②取出数组中第k大的数字。
二面
三段sql语句,对执行效率排序,并说出原因。(有关覆盖索引,联合索引原理)
介绍mysql四种隔离级别
介绍redis常用数据结构
详细介绍redis中zset数据结构,及插入时间复杂度
redis持久化原理
算法:
二叉树中和为K的所有路径
输入:
二叉树:
1
2 3
4 5
K=8
输出:1->2->5
三面
聊了简历中的项目,自己主要负责的模块实现原理。
https原理
数据库优化流程
算法:
求一个有序整数数组中和为K的数的对数。
输入 :int[] arr = {1, 1, 2, 3, 4, 5, 7, 7, 8};
K=8
输出:5
结束完,问了面试官,为什么不问java的问题(投的简历是java工程师),面试官解释说这边主要技术栈是golong,如果进来会转语言的。不过他也补充问了些java框架的知识
jvm优化流程
DUBBO的底层原理
四面
根据简历介绍了一下项目架构和数据流程
联合索引原理,及分析几个sql的执行效率
mysql事务隔离级别以及实现原理
算法:
递增递减数列(不考虑附近重复),找出最大的数
输入 :int[] arr = {1, 2, 3, 4, 5, 7, 8,10,5,3,2,1};
输出:10
每轮周期大概三天左右,比较耗时间。
总的来说,面试体验不太好,几轮面试都有重复的问题,https原理,mysql索引和事务的一些原理问题。
每轮算法题总的来说不难,leecode 中等水平,有思路,但是缺少训练,code都未通过测试。
四面加面原因,估计也是因为之前算法没有通过的原因吧。
加面也没过,第二天收到了拒信。
想社招去头条的同学多刷刷leecode,应该问题不太大。
希望能帮助到你,加油。