记一次小米一面面经。

记一次小米一面,潜水很久了,也分享一下。
面试官挺好,提前短信通知我面试时间。
上来自我介绍balabala。
看你实习过,问那个公司具体干什么的,你干了什么,怼项目,关于elasticsearch海量数据做过滤和统计。
看你简历上都是java,那我问你点java的东西把。

Q:你说你重写了hashcode,说一下你怎么写的?
A:我只是过滤和统计的时候用到了set和map所以要重写hashcode,SHIFT+ALT+S生成的。。。
Q:重写equels需要重写hashcode吗,为什么?
A:因为规定equels相等,hashcode必须相等,比如说hashmap、hashset添加的时候是先比较hashcode。
Q:==和equels的区别?
A:==是比较两个对象的引用,equals是比较两个对象的值。
Q:object类equals方法是怎么实现的?
A:不知道,没看过。(刚看了一下,实际上也是==)
Q:hashmap讲一下?
A:balabalabala...
Q:hashmap初始容量可以自己定义吗?
A:可以,但是必须是2的多少次幂。
Q:那我定义24呢?
A:那么初始容量是32.
Q:底层是怎么实现的?
A:我记得看过,忘了。。。(刚刚想起来,是先与16比较,如果比16大,对16做<<位运算把,好像是这样)
Q:hashtable知道吗?
A:知道,hashtable是线程安全的,锁住整个数组,基本已经淘汰了。可以用concurrenthashmap。(没有继续往下问concurrenthashmap)
Q:hashmap可以存null值吗,hashtable呢?
A:可以,不可以.
Q:final修饰的对象可以改变引用吗,可以改变值吗?
A:可以改变值,不能改变应用。
Q:volatile知道吗?
A:volatile内存可见balabala禁止重排序
Q:实现原理知道吗,内存屏障?
A:不知道。
Q:volatile是线程安全的吗,比如++操作?
A:不是线程安全的,因为++操作是三个操作,先读再加再写。
Q:static方法可以访问非static方法或变量吗?
A:不可以。
Q:为什么不可以?
A:...不知道,没研究过这个问题。
Q:那对象和类呢?
A:想起来了,因为static方法是属于类的,所以static方法是不能访问的对象的方法的,因为每个对象的值可能不一样。
Q:线程池用过吗?说一下常用的线程池?
A:用过,但是不记得常用的线程池,给他讲了一下线程池的原理,然后线程池的一些参数。
Q:keepAliveTime这个参数是干嘛用的吗?
A:知道,非核心线程的存活时间。
Q:那是怎么计算这个时间的?
A:从非核心线程闲置的时候开始计算(我猜的,他又问我确定吗,我说我确定)
Q:synchronize讲一下,sleep,wait?
A:balabalabala
Q:可重入锁知道吗,synchronize是否可重入?
A:知道,不可重入。对一个对象加锁后可以再对另外一个对象加锁。
Q:synchronize对static方法加锁?
A:锁住整个类。
Q:ThreadLocal知道吗?
A:不知道。。。
Q:说一下堆和栈?
A:balabalabala。
Q:新生对象一定放在eden区吗?
A:不知道。。
Q:那如果一个对象特别大,放在哪里?
A:老年区(他还问我确定吗,提示你的时候回给你下套...)
Q:看你用过spring,spring的拦截器知道吗?
A:不是特别了解,项目中用到过...然后给他讲了我的单点登录...   通过拦截器判断用户是否登录。
Q:看你用过redis,redis事务支持回滚吗?
A:不支持回滚,redis事务串行执行,执行失败也不回滚。
Q:考你两个算法题,两个链表,判断是否相交,找出相交的第一个点?
A:(后悔没刷剑指offer)用了最蠢的办法,插入到map里。。。
Q:25匹马,五条赛道。每条赛道跑一匹马,只能知道名次,不能知道速度,怎么找出前一二三名,用几次?
A:(想了3-5分钟吧,不想浪费对方时间,虽然知道是不是最优的)8次。
Q:有什么想问我的?
A:因为我是第一次正经面试...能不能给个评价?
Q:还可以(很中肯...)
ps:面试官很好,会适当引导。很感谢这位大哥。
#面经##内推##实习##小米##Java工程师#
全部评论
谢谢分享, 另外 synchronized 是可重入的。
28 回复 分享
发布于 2018-08-07 16:25
楼主是校招内推么?什么岗位呀?
点赞 回复 分享
发布于 2018-08-07 16:00
赛马那题,昨天看的面经里也有,我要去百度下了
点赞 回复 分享
发布于 2018-08-07 16:03
对了 还问了linux top命令 我说我只做一些安装啥的 都是文件操作命令。。。
点赞 回复 分享
发布于 2018-08-07 17:00
那个keepalivetime是通过workqueue的poll(time,unit)来进行判断的,如果超时没取到就是null,就结束线程,昨天刚好复习线程池看到
点赞 回复 分享
发布于 2018-08-07 18:08
根据老夫多年的一面挂经验,还可以一般就是挂了。
点赞 回复 分享
发布于 2018-08-07 19:47
还有DiscardOldestPolicy问我知道不,英语不好没听懂他讲什么。。。其实是知道的,说不知道了。
点赞 回复 分享
发布于 2018-08-07 16:00
小米内推开始了吗?
点赞 回复 分享
发布于 2018-08-07 17:07
赛马那题答案7次
点赞 回复 分享
发布于 2018-08-07 17:36
你是应届毕业生还是已经工作的人啊 懂得好多
点赞 回复 分享
发布于 2018-08-07 17:59
synchronized是可重入锁吧......
点赞 回复 分享
发布于 2018-08-07 18:23
在哪内推的java岗位啊
点赞 回复 分享
发布于 2018-08-07 18:42
求大佬的内推方式
点赞 回复 分享
发布于 2018-08-07 20:57
小米校招开始了?
点赞 回复 分享
发布于 2018-08-08 09:29
楼主在哪里实习过呀?前些天投了小米内推,一直没消息,感觉简历没过。。。o(╥﹏╥)o
点赞 回复 分享
发布于 2018-08-08 18:16
校招提前批免笔试明天开始面试
点赞 回复 分享
发布于 2018-08-08 18:44
大佬,你应聘的是什么岗位啊?
点赞 回复 分享
发布于 2018-08-08 19:26
问的很细了,楼主很棒啦~
点赞 回复 分享
发布于 2018-08-18 22:56
赛马那道题不是7次吗?
点赞 回复 分享
发布于 2018-08-19 00:41
感觉面试你的是志哥
点赞 回复 分享
发布于 2018-08-19 15:46

相关推荐

不愿透露姓名的神秘牛友
11-21 17:26
比亚迪 汽车工程院 仿真开发测试 18k*1.36*12 硕士985
点赞 评论 收藏
分享
点赞 评论 收藏
分享
11 183 评论
分享
牛客网
牛客企业服务