【社招】数字马力一面面经
开头:准备到的东西答得挺好,一到没准备好的问题就完蛋,气场光速下降;
不过也算是给自己提个醒,需要学习哪些知识和欠缺哪些方面
1.自我介绍
2.介绍下自己负责的需求和专项
(这里因为提前准备了!所以被夸说的很清楚!)
3.挖掘了一下项目细节
4.python有什么数据类型
tuple、String、Set、(Dict忘了咋说了,靠,只记得Java的HashMap了)、……等等
5.什么叫可变,什么叫不可变?
比如,tuple、String不可变,int可变(其实这里应该说整型)
追问:为什么可变/不可变数据叫可变/不可变?
没答上来个,淦(答案是:不可变之所以是不可变,是因为变化之后地址都变了;而可变之所以可变,是因为value改变后,地址仍不变)
(已经开始流汗了。。。)
6.了解Java是吧,Java的MVC介绍一下
没学(淦!)
7.SpringBoot呢?
在学(淦!)
8.注解了解吗?
了解,比如@Test
追问:那@Test有什么用呢
将一个方法变为测试方法,可以不用在main函数中,也能直接运行
9.sql了解是吧,left join, inner join, right join有什么区别
left join 左有右没有,inner join必须都有才能有,right join右有左没有
追问:那比如一个表和另一个表left join,最后表现是什么?
如果右表找不到对应字段,就不会展示在表中(啊啊啊啊记错了!!!,是右表找不到会展示NULL,亏得面试官反问了三次“真的嘛?”,我还是不知悔改,因为真的记不得了)
10.如果需求已经倒排了,但是RD说提测延期了,怎么办?
跟领导请示借人(其实应该是让RD自己在群里同步产品和QA的+1,不要把其他人的责任揽在自己身上),期间面试官还反问我:“这是需要你做的事吗?”
11.如果需求明天就上线,还有10多个bug,咋办?
先群里同步领导,然后拉会,拉RD和产品,确定剩余待修复bug的优先级,高优缺陷优先修复,低优缺陷暂缓修复,修复进度保持跟进,直到需求上线通过验收(我回答的还不错)
12.来做个题吧
因为前面的各种失败,导致此时气场跌倒了低谷,题目其实挺简单的,就是一个数组{0,1,0,3,6,8}要在1次遍历下把0全部挪到尾部,其他元素相对顺序不变。
public static void main(String[] args) { int[] nums = {0,1,3,0,0,4,2}; int cur = 0; for(int i=0;i<nums.length;i++){ if(nums[i]!=0){ nums[cur] = nums[i]; cur+=1; nums[i] = 0; } } System.out.println(Arrays.toString(nums)); }
我当时太紧张了,写的代码有一点问题,再加上面试官提醒我双指针,其实我已经用了双指针,我还自己画蛇添足多加了一个指针,但是好在我思路说清楚了,而且也不是非要通过用例的那种代码考核,混过去了。。。事后自己稍微琢磨一下子就写出来了(当时我的草稿本也不在手边,不敢自己乱动去拿,真的是,哎哎,以后还是要做好准备。。。)