阿里菜鸟春招java后端电话一面(3.15)
一、自我介绍
1、学校专业、奖学金,团支书工作。(可以不说)
2、实验室、工作内容。
3、比赛项目:用到的技术,负责的板块。
4、实验室项目:同上。
二、实验室任务
1、招新工作。
2、日常学习、学习路线以及答辩机制。
三、项目(不够熟练,要重新组织语言)
1、介绍项目内容。
2、碳积分计算,数据接口怎么获取?
3、难点在哪?
因为我说了shiro+JWT,他问我JWT是什么?(回答的不够精简具体)
详细介绍shiro和JWT的作用和处理逻辑。
如果不用shiro该怎么做?(答得不好)
四、数据库
1、B+树结构?
①多路平衡查找树
②只有叶子结点存数据,减少IO次数。
③每次都要查到叶子结点,查找性能稳定。
④底层是有序双向链表,便于范围查找。
2、只有叶子结点存数据,为什么可以减少IO次数?
3、B+树一般有几层?(没答出来,感谢学长听完录音后帮我指导和延伸思路:)
一般一到三层就可以支持千万级别的数据。
延伸:为什么呢?为什么不用四到五层支持上亿级的数据呢?
因为一般来说,一个单表不会支持那么多数据。
继续延伸:怎么分表?
五、数据结构
1、无序列表怎么算第m 大的数?
答出来了快排,但是我说要全部排完才能出结果。
重新想:
不用全部排完,由于快排的算法找到一个基准点,使小于它的数在它左边,大于它的数在它右边;
这样它所在位置的下标是M,如果M>(m-1),只要再排它左边的数就好了,反之则排右边,直到M==(m-1)就找到了。
2、用栈来实现队列。
3、计算二叉树树高。
六、JVM
1、判定是不是垃圾?
两个算法,引用计数法和可达性分析算法。
自我延伸:有哪几种方法判断GCRoot?
七、java
1、大int和小int的区别?
①引用类型和基本数据类型。
②堆、栈。
③自动装箱、拆箱场景,以及装箱其实就是调用valueOf。
反思补充:
还可以提到比较相等时的情况(==和equals)。
默认值不同,Integer:null,int:0。
八、计网
1、http和https的区别?
2、SSL加密过程(没get到他问的点,以为是说服务端和客户端之间握手过程,但是应该是说加密算法什么的)。
九、java
1、HashMap底层结构?
2、为什么转红黑树?
性能更好balabala,条件只提到了8,没提到64(晕哦这也能忘。
3、怎么解决hash冲突?(答得不够具体)
4、底层结构说的太简单,再详细说说?
头插尾插、阀值、加载因子。
十、实验室项目
1、项目内容?
2、负责什么部分?
3、数据库怎么设计的?
十一、反问
1、部门的技术栈和业务?
自己百度。。。
2、对我的表现有什么评价?
公司规定不准给。。。
虽然只面了30多分钟,但是基本上啥都问到了,暴露了很多缺点,发现自己在准备的时候没有多问一句为什么,都想的比较浅,项目准备的也不够充分,感谢学长学姐听了录音给了我很多有用的建议~
面是周一面的,挂是周六挂的,哎,的确是很多不足,继续冲吧。