华为odjava机试题_经验分享:Java粉丝面试18K华为OD岗位的真实过程

本文分享了一位计算机专业毕业生面试华为OD岗位的经历。从机试到面试,详细描述了题目类型和面试问题,包括JVM垃圾回收、Mybatis与JPA、Redis、并发场景处理、算法题以及内存泄露等知识点。面试过程友好,但竞争激烈,体现了大厂面试的基本要求。
摘要由CSDN通过智能技术生成

续集

是下面文章的续集,出来面试的遭遇

一本粉丝

先说我的情况,双非一本,19年毕业,计算机专业,只过四级,刚刚一年经验。互联网的项目,只是在银行干过一小段时间,还是实习,之后就是业务型的增删改查公司,传统行业。(总的来说就是要啥没啥,根本没有吸引眼球的地方,运气好可能才会保证简历不被筛掉的那种)。然后梦想就是去大厂,虽然是程序员,但是真的跟互联网没什么关系的那种,天天CRUD,所以想尽早去,不想一个经验用三年。也只想去杭州,因为杭州整体氛围就很好,比起北上广,我觉得在杭州可能会更容易一些。

我从3月份之后就一直在关注杭州的一些公司的岗位要求。很多公司都卡经验,甚至一些外包公司都在卡,去年都还不是那么严重。所以只能找一些偏外包的岗位去试试,这些岗位不怎么卡经验。不过从6月份之后就好一些了。今年,是真的不容易!很多岗位上都直接说:18年之后的毕业生勿扰。有时候都约了面试时间,突然一个电话打过来,不好意思,19年的毕业生不考虑,就是这么现实。能去大厂的机会真的不多。

华为OD面试

华为OD岗位:

OD岗位就是那种外包性质的岗位,不过我面的这个岗位上说是 同工同酬,编制在德科,所以如果面过了就只算半个华为人吧。

为什么不直接去面正式员工的岗位?没机会!

面试流程是很规范的,如果是约线上电话面试会跟你打电话提前确认时间。

笔试也是有一段时间去准备的。

先是一次机试,时间比较宽裕,应该是从题库里面随机出的三道题目。应该只要总体分数过了70分左右就可以面试了(100分制的话)。自己估计一下就好了。比如我的是两个简单的,和一个稍微难一点的,我就把两个简单的做了,难的那个保证有个40%左右的通过率就好了。(当然这是我这种算法和数据结构比较渣的同学就可以用这种办法了,大神就随意啦)

我的机试题目:

题目一:

1、输入小明的身高和他们班其他小朋友的个数

比如 100 5

2、输入这5个小朋友的身高 中间用空格隔开(身高的范围是0-200)

98 99 100 101 102

输出

按照跟小明的身高差去排序,身高差相同,个子小的排在前面

100 99 101 98 102

题目二:

输入一个字符串 和一个标志

例子:  aA1bB2cC3 1

假如这个标志是 1  就把字符串中小写字母反转输出  cA1bB2aC3

假如这个标志是 2  就把字符串中大写写字母反转输出  aC1bB2cA3

假如这个标志是 3  就把字符串中数字的位置反转输出  aA3bB2aC1

题目三:

先输入一个行数

比如说是2    再输入两个字符串(用逗号隔开)

4,5,4

5,4,5

然后输入操作的步骤数目

比如说是2,每一次输入标志了上面二维数组里面的两个数字

0,0,0,2   00代表了第1行第一列的4   02和第一行第三列的4

(如果这两个数字能用三根短线连起来,并且相等,那么就把这两个位置上的数字变成0)

1,0,0,1  同上(10是5  01也是5)

如果输入的多组操作,都能正常完成数字的消除,就返回0k

如果有一组操作存在错误,就返回这个操作的下标。

分析错误的原因:操作里面指明的位置在二维数组里面没有,下标越界,两个下标的值不相等,或者就是不能用三个短线把这两个数连起来

之后是线上面试,原本说是视频面试的,因为华为好像当场要手写算法。但是后面又改成了电话面试,口述算法实现思路。

1、JVM的垃圾回收机制,后面是类加载子系统(这两个问题我还ok)

这是JVM最常问的两个内容了吧。

内存分配策略影响垃圾回收机制,用GCRoot进行可达性分析找到需要回收的对象。然后在不同的分代区域运用不同的垃圾回收算法。为什么要对堆空间进行分代划分,三条分代假说理论支撑。

类加载,沙箱安全策略,加载链接初始化都干了什么,链接的三个小步骤分别又干了什么。

《深入理解Java虚拟机》,多看几遍,面试问这些就不虚了。

2、Mybatis和JPA 项目配置连接

(我没回答好,MyBatis就不该写在简历上,没看过源码,但是不写有怕简历被筛掉,机会都没有)

数据库连接源还好,连接资源复用,几个参数还是记得的,只是底层的一些东西我就不知道了,得好好补一补这些了。

3、Redis

这个也是常问的,这次主要问了 缓存、分布式锁怎么实现的、基本数据类型。

但是Redis能问的实在是太多了,缓存雪崩、击穿、穿透 三连,持久化,集群,分布式锁,双写一致性,布隆过滤器,这些是我知道的,底层很多东西我都不知道,跳跃表,哈希表实现那些。

4、之后是一个场景模拟题:假设现在并发很大,怎么去保证数据库安全

我回答:

首先在服务层面设置限流或者熔断机制,配置一些限流规则,优先保证核心功能可用。

之后对读写情况redis该怎么做,读那就缓存基本能搞定,写的话就有缓存大批量更新的问题,redis怎么做才撑得住。

之后是数据库层面怎么做。

(反正我觉得我回答的不是很好)

5、之后是算法题

算是比较简单吧。一个数组找最大的K个。口述那就更简单了。

堆排序。

(我是这样的,如果是学校里面学的数据结构,算法啊这些我可能还会一点点,但是比较高级的就是纯粹懵掉的那种。因为当时比较叛逆,没想着在课上好好学这些基础的东西,只好好上那些找工作要用的课,当时也不知道这些课其实很重要,所以现在只能恶补)

6、然后是内存泄露。

奈何我答个稀烂,我以为是OOM。等我反应过来的时候就......

然后追着我问netty的线程模型,我只我勉强还记得两个线程组实现异步处理,一个负责监听连接事件,一个负责处理其他事件。之后问我怎么实现监听的,后面她说有几个方法怎么怎么做,我就好像想起来一点了......(真太久了,记不得了,也是答个稀烂)

7、然后问 hashcode 我也没有答好,我只说在对象头里面存放的hashcode,是懒生成的,用来判定对象相等,但是大部分情况是比较地址值。

之后我看了一下,Object类的hashcode是用native方法生成的,是用地址值,而散列集合的hashcode是被重写过的,以所有key的hashcode之和作为自己的hashcode。我猜她想问的是这个。

8、然后问我HashMap,put和resize的过程肯定是必问的,这个我还是ok的。后面问ConcurrentHashMap,也还行。

整个过程40分钟左右,中间网络不好断了一次电话,可能是她不小心电话挂掉了。

整体感觉这次是筛选人的面试,比较基础,不是很深。回答问题的时候不会打断我。网络不好,都没听清楚一些问题,我也让她再说一遍。回答完也会停顿几秒,然后我回答的不是很清楚的简短的给我回答一下。整体感觉还是很nice的。

华为的到这里就完了吧,到现在都没有通知,笔试到面试我等了一个月,大厂的周期真的很长。

最后送3本书给粉丝

参加抽奖 关注的粉丝   点击进入抽奖页面

  • 0
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为odjava面试是针对Java开发岗位面试。在这个面试中,面试官会问一些与Java开发相关的问题,旨在评估应聘者的技术能力和解决问题的能力。 在面试中,应聘者可能会被问到Java语言的基础知识,比如面向对象编程、多线程、异常处理等。面试官可能会询问应聘者对Java核心技术的理解程度,以及应聘者在实际项目中如何应用这些技术。 此外,面试官也可能会提问应聘者在项目中使用的开发框架和工具,如Spring、Hibernate、MyBatis等。他们可能会问应聘者对这些框架和工具的掌握程度,并询问其在项目中如何使用它们来完成任务。 在华为odjava面试中,面试官会注重应聘者的代码质量和编码规范。他们可能会要求应聘者写一段简单的代码来解决某个问题,然后对其代码进行评估。在这个过程中,面试官会考察应聘者的代码结构、命名规范、注释等方面的能力。 另外,在面试中,面试官可能会讨论应聘者的项目经验和成果。他们会询问应聘者在过去的项目中扮演的角色和完成的任务,并希望应聘者能够详细描述其在项目中所做的工作以及遇到的挑战和解决方案。 在华为odjava面试中,除了技术能力外,面试官还会评估应聘者的团队合作能力、沟通能力和问题解决能力。他们可能会问应聘者在团队合作中遇到的问题以及如何解决这些问题的经验。 总结来说,华为odjava面试是一个评估应聘者Java开发技能和综合能力的面试。应聘者需要准备好Java基础知识、开发框架和工具的应用以及项目经验,并能够清晰、准确地表达自己的观点和经验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值