华为OD社招面经
机考
三道编程题,限时两个小时半。可能是运气比较好,比预期要简单的多,一个小时交卷满分。
字符串相关
具体是啥忘了
解析最远的坐标
给定一个字符串s,s中包含坐标以及一些其他英文字符,求最远的坐标。
例:s="WeLCome(1,1)tO(2,2)(0,-1)KXBlog(6,6)Space";
最远坐标是(6,6)
最多能打几张牌
给定n张牌,每张牌上面有号码和花色,出牌只能出与上次打出的同样号码或同样花色的牌,问最多能打几张牌
一面
一面面试官技术大佬,虽然有很多地方个人觉得答得不怎么样,但还是放了我一马。
- 自我介绍
- 介绍工作项目,项目的业务?
- 你工作中的职责,工作成果
- 项目中用到的中间件技术?
kafka、redis、jpa、mysql、swagger、nacos、feign等 - jpa的自动建表知道吗?
知道,但是项目中不用jpa来建表 - 项目某个功能具体实现逻辑?
- 说一下你最擅长的中间件技术
kafka和redis吧 - 你Redis用在哪些场景?
缓存、分布式锁 - 怎么设置分布式锁的?redission用过没有?
- 你们有几个环境?出了问题怎么排查的?
登录相应环境服务器通过docker logs查看日志定位错误 - 前后端怎么联调的?
swagger文档调接口 - 自动构建工具用的什么?
jenkins。 - 你们项目一个服务几个节点?为什么只有一个?有没有想过单节点存在的问题?
开发环境一个,开发环境压力不大,请求多了压力大。线上几个不了解。 - 微服务的熔断与降级知道吗?
- Springboot中的注解知道哪些?
- 你们项目中的包结构是怎样的?
- 面向对象和面向过程
- java三大特性是什么?每个特性指的是什么?
- 设计模式用过哪些?项目中怎么用的?
- 设计原则知道吗?
- Restful知道吗?
- 手撕算法题:数字字符串转化成IP地址
看我机考满分,特殊照顾了一下,给了我一个稍微难点的题目
花了十多分钟,大概写出来了
还有bug没改完就被叫停了,让一向追求完美的我有点郁闷 - 当前薪资
- 反问
- 对我有啥建议吗
没有 - 一共有几面
一面、二面、主管面 - 二面和一面区别在哪
二面是交叉面,别的部门来面,一般比一面简单些
直接通知通过,等待二面交叉面。
二面(交叉面)
二面面试官很直接,上来自我面试都没做直接开问。
- 问项目。
二面面试官对项目不了解,讲项目很吃力。 - 了解JVM吗,JVM内存分区了解吗,哪些区域会发生OOM?
方法区、堆、虚拟机栈、本地方法栈、PC寄存器;堆、虚拟机栈、本地方法栈、方法区 - String a = "123";String b = "123",a==b吗?
相等,因为执行String a = "123"后,会把123放到字符串常量池,再执行String b = "123"时,会直接引用常量池中的"123",得到的是同一个对象。 - 类加载器知道吗,有哪几种类加载器?
启动类加载器、扩展类加载器、系统类加载器 - 双亲委派知道吗,流程,为什么要双亲委派?
先委托父加载器尝试加载,父加载器无法加载子加载器再加载,保证程序安全。 - 父类静态代码块、父类构造方法、子类静态代码块、子类构造方法的执行顺序
父类静态代码块、子类静态代码块、父类构造方法、子类构造方法 - 剩半个多小时,给了一道算法题:
给一个数组{1,1,1, 1, 1, 1, 1, 1, 1, 2}
分别代表着{2,4,8,16,32,64,128,256,512,1024}的个数,
设计一个算法,计算至少相加多少次能得到2048这个数字。
面试官给了些思路,并提示我不要直接开做,好好想想,确定好方法。
我说我确定了,不用想了!
五分钟干完,面试官看我做的很快质问我之前做过这道题?
原本一个小时的面试,提前半小时结束。
综面(主管面)
主管面,两位面试官,不愧是主管,有种领导特有的气度。
- 自我介绍
- 为什么要来北京?
- 问现公司和项目
主管对数据中台的业务很熟,各种问,不问技术,就问业务,问的我有点懵。 - 为什么没考研?
- 机考满分,一顿夸
整的我怪不好意思,想直接说题目一点都不难,又觉得这样太装了,啥也没说,就配合着傻笑。 - 你还有什么问题吗?
听到这几个字脑袋一懵,会议定半个小时,结果十分钟就让我反问。
我在想,这么快?还是我凉了直接面试结束了?
看他是主管也不敢随便问,就随便问了问出面试结果和发Offer的时间。
整体感受
发了Offer,整个应聘过程比较顺利,遇到的面试官也都很nice。
有意向来OD的小伙伴可以找我内推,也可以自行扫码投递呦