华为OD - 终端云
资面
主要问一些在校经历,做过那些项目,大学期间觉得做过的最有价值的事情,大学期间令你感到最有成就感的事情,期望薪资。
技术一面(1h20min)7.18
1、项目里使用到RPC去取代HTTP,为什么?
2、RPC和HTTP的区别,以及底层实现。
3、如何设置线程池?在项目中怎么使用?
4、线程池中采用的拒绝策略?都有那些策略,在实际业务场景中你是怎么考虑采用哪一种策略的?
5、关于懒加载,项目中是如何实现懒加载的?
6、说一下你对JVM的理解?
7、项目中你怎么设置GC?
8、MySQL中索引你是怎么理解的,如何使用?
9、了解过分库分表吗?什么时候使用分库分表。
10、说一下你对Java中集合的理解。
11、说一下Map的结构。
12、什么时候使用HashMap,什么时候使用HashTable?
13、为什么使用CHashMap?
手撕:获取字符串中连续数字,带符号输出(20min,粗心了这里,写着写着脑子短路直接return,导致负数输出错误,后面debug找到问题所在)
技术二面(2h)7.19(本来是7.18的,但是因为面试官比较忙,改成7.19)
手撕:有重复字符的字符串的重新组合 (30min),太紧张,写错了个参数,花了很多时间。
1、你是如何去重构和设置数据库表的?
2、你这里批量插入一百万数据用时33s有点不太合理,我们先算一下?
2! 问了一些表结构几个字段,所采用的数据存储类型,硬件配置,平均一条数据的字节数量,算了大概20分钟,发现是合理的,就跳过了
3、项目里边为什么使用RPC去替代传统的HTTP?
4、RPC和HTTP的底层?
5、你知道RPC的底层是采用哪一种编码方式吗?(这个我蒙了)
6、你项目中线程池是怎么使用的?
7、讲一下核心线程数?
8、你有看过线程池的底层吗?这个我也没有了解过,不过我看一下你的理解。
9、当线程池中,我设置的核心线程数是10,最大线程数是20,当我往里边加5任务的时候,线程是怎么创建的。
10、如果我在原本5个的基础上,假设我这时候有一个新的任务,但是有一个线程已经结束了,这是后会不会创建新的线程,具体分析一下。
11、如果核心线程数满了,这时候我又往里边加任务,这时候任务是应该等待还是创建新的线程。
12、如果我一个变量加了volatile关键字会怎么样?
13、你是怎么进行分库分表的?
14、什么时候分库分表?
15、分区和分表的区别?
16、你觉得为什么要分区,为什么要分表?
17、说一下你对索引的理解,什么时候使用索引。
18、为什么数据量过大不使用索引?索引的底层实现是什么?
综合面试(10min)7.21
面试官介绍了一下华为的工作时间 996 ,周末加班。
1、你在大学期间都看过那些技术相关的书籍?为什么要看这些书?
2、有没有看过SpringBoot和SpringCloud的源码?
3、你觉得SpringBoot最牛B的地方在哪里?
4、你对华为od相关岗位有没有了解过?
定级定薪 7.25
base东莞 D1 11k + 2k绩效