饿了么 3.21 Java 一面
面试官特别好,说不怎么问纯八股,但是Java基础非常重要(就问这,很基础)
1.自我介绍
2.Java基础有哪些核心模块(说的 集合、Map、JUC、JVM、反射、String,面试官说 异常)
3.异常顶层是什么,有哪些接口实现类
4.集合顶层是什么,各个接口实现类有哪些
5.HashMap结构,(说了1.7/1.8的数组链表红黑树,然后还扯了Map顶层那一坨)
6.IO流有了解吗(不怎么了解,说了Reader、Writer)
7.字节流和字符流有什么区别?
(忘了,扯淡说字符流比字节流读的快,然后跟它扯了一丢有的没的)
8.我看你用了Redis(黑马点评),为什么用它,说出你的理由?
(我说Redis比MySQL快,基于内存的。且QPS更高,能抗高并发)
9.Redis和MySQL的流量承受能力是多少?
(我说MySQL几千,扯了个2000,Redis几万几十万,面试官就说如果我给MySQL叠硬件呢?32G配置啥的,下去多看看这里的承受能力)
10.Redis数据结构用过吗,有哪些?底层逻辑是什么?
(底层逻辑我问是不是底层数据结构,然后开始吟唱八股,SDS、链表、压缩列表、Hash、整数列表、跳表等底层数据结构,面试官打断我施法:好的,我get到了)
11.看你用了MQ,为什么用它?
12.MQ有什么功能?
13.MQ的解耦举个具体的场景
14.怎么创建线程?
15.线程池是被封装的,它底层创建线程并运行的核心原理是什么?
(不知道,其他3种方式本质都是new Thread().start(),我盲猜说最后也是new Thread().start())
16.线程池的参数是什么
17.最大线程和核心线程有什么区别?
(最大线程和核心线程里的各个线程本质没有区别,只是一种逻辑上的数量关系,然后说了线程池执行任务的流程。)
18.你知道为什么要有最大线程数?
(不知道,扯了一大堆,我说可能是想保证任务处理的一种兜底行为。面试官说是为了应对流量,核心线程应对常规流量,更多的线程应对高峰期)
19.你写这么多算法,里面流程是什么(懵逼,他解释说 用户给了输入,然后输出,中间过程是什么?)
(我实在没明白,我说了深度学习的那一套,输入->向量化->MLP变维度->输出)
20.你目前为止最有成就的事是什么
21.目前最大的挫折挑战是什么
22.目前投了哪些厂的面试
补:
A.秒杀具体流程,抢单如果每次扣2件怎么做,保证原子性?
B.list和set的应用场景
反问:
1.对我印象如何(挺好的,也很乐观,答得还行,加了微信)
2.为什么没手撕(说做了笔试)
3.流程是啥(二面是主管面,三面是HR面)
3.22号(明天) 二面
-----------------------------------------------------------
二面面试官临时有事,鸽了,电话约面时间
#饿了么JAVA#