华为OD面经
楼主是双非一本,因面试的自研公司给不到期望薪资,所以想试试od看,最后顺利拿到offer
5月16 10点技术一面 14点30 技术二面
5月17 10点资面
5月18 10点主管面
5月29 收到offer
机试 395
1、非严格递增连续数字序列的长度 (95%)
2、查找众数及中位数(100%)
3、考古学家 (100%)
一面
1、先讲讲你的项目你们系统我看每天push的消息不少,你是怎么设计?(redis kafka mysql集群保证健壮和高可用,线程池绑定用户组进行多线程消费处理消息,zset实现延迟队列,包括加分布式锁 )
2、你的营销项目有没有觉得比较难的地方?(做报表查询吧,尤其是动态列和不确定列,加上数据万级别,我们做了分表处理)
3、你分库分表咋弄的?(开源有sharding sphere,具体怎么分看业务)
4、问问其他基础的吧,currentHashMap和HashTable区别(这个网上都有,可以参考hashmap)
5、synchronized的原理(作用和作用域这些都是基本的,加锁和释放锁这个都清楚,尽量提下对象头的_owner,锁池enteyList和等待池waitSet,还有锁竞争)
6、你们线程池的核心参数和工作流程 (这个基础)
7、你当时为什么选kafka,他的原理? (选kafka是因为业务关系,我们消息量需要高效高吞吐,原理flower同步机制和offset偏移量)
8、sql优化 (这个从表结构,索引)
手撕代码:救生船,尽量能载更多人 贪心
二面
1、说下你怎么解决OOM (排查代码,linux服务器上定位,看dump)
2、说下一个对象从创建到加载到回收 (类加载系统和垃圾回收看下)
3、GC怎么判断垃圾对象,GC算法,你比较熟悉的垃圾回收器 (根节点扫描标记垃圾对象,CMS垃圾回收器主要说三色标记过程)
4、synchronized的原理(一面问过了)
5、说下AQS下面的类,说说ReentrantLock的加锁过程 (网上有state)
6、redis的集群方案 (我们是主从,说了下主从的原理)
7、sql优化和sql手撕代码 (这个从表结构,索引)
手撕代码:dfs类似于全排列但是去重
资面:
1.遇到的困难?
2.看你有空档期,搞啥呢?
3.有没有想问我的?聊业务和方向
主管面:
主管也是个技术出身,主要聊微服务的设计,你怎么设计?聊太多了聊了70多分钟,一半时间技术,一半时间其他。