流程:
- 9.7投简历
- 9.12笔试,算法2道没有ak,只a了1.71,第2道dfs超时,没有用贪心法
- 9.18上午连续三面,总时长长达3个小时,中间没有休息,震惊!!!🤣
- 9.21午觉醒来就收到感谢信了。
------------------------------------我是分割线-------------------------------
一面:主要怼项目和数据库(大概55mins)
1、自我介绍;
2、介绍一下实习项目和自己做的个人项目(说了很久);
3、sql调优(只回答了索引那块,explain查询sql的执行计划);
4、hash索引和b+树索引的区别;
5、b+树查询记录的过程;
6、docker中的MySQL、redis挂了咋办,docker挂了咋办(写脚本定时任务检查,重启,通过日志恢复数据。不知道对不对=。=)
7、共享屏幕,手动创建数据库和插入数据并查询每一科最高分数的学生姓名,一开始只写出来每科分数最大的学生姓名,即相同最高分的只查出一个,后面基本写出来,可是报语法错误,面试完后调试了一下发现是变量写错了。。(希望不要减分)
2、介绍一下实习项目和自己做的个人项目(说了很久);
3、sql调优(只回答了索引那块,explain查询sql的执行计划);
4、hash索引和b+树索引的区别;
5、b+树查询记录的过程;
6、docker中的MySQL、redis挂了咋办,docker挂了咋办(写脚本定时任务检查,重启,通过日志恢复数据。不知道对不对=。=)
7、共享屏幕,手动创建数据库和插入数据并查询每一科最高分数的学生姓名,一开始只写出来每科分数最大的学生姓名,即相同最高分的只查出一个,后面基本写出来,可是报语法错误,面试完后调试了一下发现是变量写错了。。(希望不要减分)
// 设计实体 // 课程,学生,课程成绩 // Student(sId, sName) Course(cId, CName) Grade(sId, cId, cGrade) // 查询每一科最高分数的学生姓名 SELECT s1.sName,g1.cGrade,c1.`cName` FROM Student s1, Course c1, Grade g1 WHERE s1.sId = g1.sId AND c1.cId = g1.cId AND g1.`cGrade` IN ( SELECT MAX(cGrade) AS cGrade FROM Grade g, Course c WHERE g.`cId` = c.`cId` GROUP BY c.`cName` );
8、redis集群。。
9、还有其他忘记了。。。
--------------------------我是分割线-------------------------------
10点接着二面:主要怼Java基础(大概50mins)
1、没有自我介绍,吹水了几分钟;
2、java内存划分;
3、java堆划分;
4、java.IO包下有哪些类;(就说了个文件读写操作,socket网络io)
5、面向对象多态的体现;(面试官扯到c++的虚函数了🤣,大一下自学完cpp那本厚砖头,因为后面没用就忘记了😅)
6、场景题:给出所有手机段号和区号(一个区号对应一定范围的段号,段号即手机11位中的前7位),要求用文件读写操作,当有手机显示在屏幕上时,立马根据手机11位中的前7位找到对应的区号,并且让文件存储的容量尽量小,手机号大概有50万数据。
答了一个不太可行的思路:将所有段号模上一个质数(哈希冲突尽量小),将所有余数相同的段号所对应的区号映射到文件名为余数的文件中,每次一个手机号来了就先取模这个质数,找到对应的文件,
遍历文件中所有不同的区号,同时去文件名为区号的文件中找是否有对应的手机号,有就直接返回区号,貌似效率不太高-_-||。
7、还有其他,忘记了。。。
2、java内存划分;
3、java堆划分;
4、java.IO包下有哪些类;(就说了个文件读写操作,socket网络io)
5、面向对象多态的体现;(面试官扯到c++的虚函数了🤣,大一下自学完cpp那本厚砖头,因为后面没用就忘记了😅)
6、场景题:给出所有手机段号和区号(一个区号对应一定范围的段号,段号即手机11位中的前7位),要求用文件读写操作,当有手机显示在屏幕上时,立马根据手机11位中的前7位找到对应的区号,并且让文件存储的容量尽量小,手机号大概有50万数据。
答了一个不太可行的思路:将所有段号模上一个质数(哈希冲突尽量小),将所有余数相同的段号所对应的区号映射到文件名为余数的文件中,每次一个手机号来了就先取模这个质数,找到对应的文件,
遍历文件中所有不同的区号,同时去文件名为区号的文件中找是否有对应的手机号,有就直接返回区号,貌似效率不太高-_-||。
7、还有其他,忘记了。。。
----------------------我是分割线------------------------------------------------
10点55接着三面:全面考察(大概50mins)
1、自我介绍;
2、介绍一下实习做的任务;
3、公司自研的中间件和redis,rocketmq,kafka等之间的区别,在性能上有哪些提升?
4、浏览器键入一个网址,经过哪些协议?
5、将某个目录下的文件按大小倒叙输出文件名,有子目录要递归打印。这里提供一下我当时手撕出来的代码,自己测了一下好像没问题🤣
10点55接着三面:全面考察(大概50mins)
1、自我介绍;
2、介绍一下实习做的任务;
3、公司自研的中间件和redis,rocketmq,kafka等之间的区别,在性能上有哪些提升?
4、浏览器键入一个网址,经过哪些协议?
5、将某个目录下的文件按大小倒叙输出文件名,有子目录要递归打印。这里提供一下我当时手撕出来的代码,自己测了一下好像没问题🤣
import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class T2 { public static void main(String[] args) { Scanner in = new Scanner(System.in); String directName = "D:\\opt"; dfs(directName); } static long dfs(String directName) { File file = new File(directName); if (file == null || !file.exists()) return 0L; long res = 0L, siz; List<Node> nodes = new ArrayList<Node>(); Node curNode; if (file.isDirectory()) { File[] list = file.listFiles(); for (File item : list) { siz = dfs(item.getAbsolutePath()); res += siz; curNode = new Node(item.getName(), siz, item.isDirectory()); nodes.add(curNode); } } else { res = file.length(); curNode = new Node(file.getName(), res, false); nodes.add(curNode); } nodes.sort((o1, o2) -> { return o2.siz - o1.siz < 0 ? -1 : 1; }); System.out.println(nodes); System.out.println("======================"); return res; } } class Node { String name; long siz; boolean isDirect; public Node(String name, long siz, boolean isDirect) { this.name = name; this.siz = siz; this.isDirect = isDirect; } public String toString() { return (this.isDirect ? "目录名为:" : "文件名为:") + name + (this.isDirect ? ",目录大小为:" : ",文件大小为:") + siz + "\n"; } }6、设计模式了解多少,有多少说多少?
7、tcp和udp的区别;
8、反问环节(问手里有offer没,考虑异地嘛)(0offer选手)
9、....问的细碎知识点还是挺多的,暂时忘记了
9、....问的细碎知识点还是挺多的,暂时忘记了
总结:基础知识有待巩固,一二面面试官人挺好的,三面面试官有点严肃。秋招第一个三面完,许愿给个offer吧!
--------------9.21午觉醒来就收到感谢信了,我太难了,秋招第三封感谢信,目前0offer-------------
全部评论
(7) 回帖