「小米面试java」小米面试几轮

博主:adminadmin 2022-11-27 04:25:06 38

本篇文章给大家谈谈小米面试java,以及小米面试几轮对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

作为一个面试官,我会问初级java工程师哪些问题?

初级java工程师多数是刚毕业或者工作1,2年的新人。对于新人,面试中基础问题会问道很多,因为先要考察这个人的基础。

关于基础类的题目,我在面试初级java工程师的时候一般会问下面两大类问题,每类5个题目,这样下来我就基本可以了解这位工程师的程度了。

java基础类

面向对象基础类

java基础类

1.描述一下java的访问修饰符,和它们之间的区别?

回答:如果可以回到出public,private,protected,就算是ok;回答出default的,加分。

2. int和Integer 区别?

回答:如果回答出Integer是int的包装类,就算ok;回答出其他的基本类型和它们相应的包装类,加分。

3.如何定义一个单精度浮点类型的变量?

回答:float 变量名=1.2f ;回答出不加最后的f为双精度浮点类型,加分

4. equals和==的区别?

回答: equals是值比较(一般处理java开发都会这么说,算是ok的)而==是引用比较(或者对象比较);回答equals是可以自定义的,加分

5.将一个数组作为参数传递到一个方法中,在方法中,数组内的元素值被改变了,那么在方法外部,这个数组内的元素是否也被改编了?

回答:是,因为java方法中传递的是引用,就ok。如果回答中,将引用说明了自己的理解,加分。

面向对象基础类

1.重载和重写的区别?

回答:这个看个人理解,理解没有什么大的偏差就ok;回答出多态相关的,加分。

2.构造方法能不能重载?

回答:可以重载,ok;回答构造方法时不能继承的,所以如果要调用指定父类构造器就必须重写子类构造方法,加分。

3.抽象方法(abstract)是否可以被final、static、native修饰?

回答:都不可以,因为抽象方法是必须子类实现的,final方法时不可以被重写的,static是父类必须实现的方法,native是本地语言实现的方法。回答出封装和继承相关的,加分

4.当父类引用指向子类对象的时候,子类重写了父类方法和属性,那么当访问属性的时候,访问是谁的属性?调用方法时,调用的是谁的方法?

回答:访问的是父类的属性,调用的是子类的方法,ok;如果可以画图解释的话,加分

5.抽象类和接口有什么异同?

回答:一些类定义上的区别,ok;回答在应用过程中,如何根据业务定义接口,加很多分

最后,如果前面问题回答的不错,会补充两个编程习惯问题。

1.在你写过的代码中,你写过超过2层的循环吗,怎么实现的?

回答:没有,就算ok;如果回答有,听一下实现,如果原因说不出来,扣分。

2.在你写过的代码中,if语句最多嵌套了几层,最多有多少分支,怎么实现的?

回答:3层以下,就算ok;如果回答3层以上,听一下实现,如果原因说不出来,扣分。

4,5个分支,就算ok;如果回答5个分支以上,听一下实现,如果原因说不出来,扣分。

最后两个题其实比较陷阱,但是正是一个反向的思考才能了解面试者之前的工作状态。

如果面试者在平日里就有好的习惯,自然不用担心。

小米二面是不是基本就定了

在一些大型企业中,通常会设定多次面试,不过大多数的中小型企业则只是只有两次面试,求职者在寻求合适岗位的时候,在初面顺利通过的情况,在二面心态上会比较轻松,认为自己一定会过,那么本期我们来浅谈一下二面是不是基本就定了?真实二面经验分享!

一、二面是不是基本就定了

所谓一面,就是初试。一般来说,人力资源部门面试主要看一些基本条件,比如学历是否符合,经验是否匹配,性格是否OK。

一方面会有一定比例的淘汰,HR通知求职者参与一方面的依据是简历。如果第一印象达不到简历上的描述,或者专业技能达不到标准,或者不符合企业文化(比如不诚信),就会直接被淘汰。只有符合公司要求的求职者才会被推荐到两边。

二面是指复试,一般是决定结果的面试(个别需要三面的情况除外)常由用人部门领导面试,主要看求职者能否在团队中发挥什么作用,能否融入团队合作。

以上只是常规流程,实际操作中会出现一些例外情况:

开发工程师等一些技术岗位,一方面可能是技术面,另一方面可能是经理面或总监面,HR在面试中可能不起主导作用。

也有一些公司招聘流程较长,一面是HR面,二面是部门经理面,三面是VP面(确保符合企业文化)。

无论面试分几轮,求职者的考核要点主要包括:是否匹配岗位,是否符合企业文化,能否融入团队等等。

在这一轮面试中,一旦涉及到薪酬福利待遇的问题,双方的谈论没有到一个点,往往就会失败,所以二面并不是一定成功的,可变的因素还有很多。

二、真实二面经验

百度校招二面

北漂近半年,由于个人原因错过很多校招,百度是第一家通知我面试的,心中难免欣喜万分,毕竟自己的运气还不差。

面试时间:2017年10月14日上午10:00

面试地点:百度大厦C座(上地十街10号)

面试方向:软件研发(Java方向)

百度面试需要先到前台签到,领取自己的编号,这个编号最好记住,毕竟会有重名的。然后排队等待面试,百度会有专人引领去面试场地(由于人很多,百度的面试场地设在了自己公司的中餐厅)。

一面是一个挺和善的帅哥,年龄差不多三十来岁,人家也很客气,主要问了以下问题(与序号无关):

1、自我介绍

2、实习项目的介绍以及你在项目中做的内容

3、Java有几种基本数据类型?分别占几个字节?

当时一紧张忘记char占几个字节了,他很客气告诉我是2两个字节。百度员工还是不错的,没让我感到太多拘束。

4、有两个有序数组a[10, 20, 30],b[5, 15, 25],设计算法如何取出两个数组中第3小的数(也就是取出15);

设计时一定要考虑效率和内存问题。

5、HashMap底层的原理,put(key, value)、get(key)原理

6、接口与抽象类的区别

7、什么是继承与多态

8、常用的设计模式并分别讲解一下

9、Linux常用命令

10、数据库的联合索引

11、数据库事务,ACID的介绍

12、从坐标原点(0, 0)到坐标(m, n)有多少条路径

13、Java虚拟机的堆与栈以及回收算法有哪些?新生代用什么算法,老生代用什么算法?

14、你有什么想问我的吗?可以随便问。

15、平时关注谁的博客?有GitHub项目吗?

还有几个问题记不得了……

一面下来差不多一个多小时,大部分都能答上来,不会的就说不会,面试官有时候还会告诉你该怎么做,叮嘱我一定要刷题。面完之后差不多11:40,百度提供零食可以自助;如果需要吃正餐需要自己出去。

二面是下午1点开始,等到快3点多才轮到我,百度的负责人把我安排到一个C/C++面试官那里,我问不影响我面Java吗,她说都可以面,现在没有Java面试官了,都排满了。我就信以为真了,呜呜……

面试内容如下(与序号无关)

1、自我介绍

2、实习项目介绍,以及项目中用到的算法(问的很细)

3、文件有N行数据,随机读取M行不能重复;设计算法,如何优化

还是要注意效率和内存问题

4、给你10G内存,500G数据,请问如何排序?说说思路即可

5、ping是在哪一层?流程是什么?

6、有哪几种常见排序?复杂度分别是多少?哪个排序算法最快?

7、你自己用过的设计模式,介绍一下

8、自己的开发环境是什么?介绍下Linux命令

还有几个问题,不记得了……

面试官最后和我说:很遗憾,你的算法能力还不够,百度不适合你。你还年轻,慢慢来。

小米面试每一轮都有算法吗

一共两轮,两个不同类型的面试官,一轮要一小时左右,两轮都要纸上写代码,给我最大的感触就是问得特别深,是越来越深,直到你答不出来。

第一轮问了我STL的一些数据结构,其内部实现。我说了map是红黑树,unordered_map是hash表,之后我不小心说到hash表最常见的实现就是一个链表数组,链表是为了处理冲突。于是又问我hash表处理冲突的方式,也难不倒我。再问让我写一个hash表存储用户的图片,大概要多少位hash值才能尽可能没冲突。我大概算了一下。下一个问题是while(1) sleep(x);这里x大概要多少秒(可小数)才能使cpu忙碌。大家估计一下我心理阴影面积。然后看我操作系统内部了解不多,又问了一堆。(这就是为什么我们应该好好读深入理解计算机系统)我答得十分糟糕。之后让我写一个链表反转,我感觉有点诧异,想不到这玩意还真这么容易考到。诧异是诧异,没花我多长时间就搞定一个O(n)时间O(1)空间的链表反转了。又让我说如果要实现一个lrucache,怎么实现?我记得教材上有说过用栈,我就直接说栈,面试官反问了我一堆问题,后来我又说用链表,不过可能空间消耗比较大,面试官问我为什么,我说有个指针域(我也是蠢哭),然后就直接打发我走了。

本来我以为我没机会了,想不到一轮面试官给面子,让我到了二轮。

一上来,看见我简历上一个项目写了tfidf,就问我其是什么,我大概说了是频率和逆向频率的综合,又要我给出精确定义。我放弃(不太确定)。虽然我不久前刚看过定义,但当时没怎么仔细思考,毕竟sklearn里都有现成实现。之后让我写一个singleton,这玩意当然难不倒我。写完后又要我写一个线程安全的版本,我用了锁,但他说开销太大。我继续放弃(我印象中确实有的,但是比较底层,我对这种底层的东西没啥兴趣,要是有兴趣,一面也不会那么惨了),并反问他怎么办,他说了一个check twice(但我之后上网没找到)。之后问我拓扑排序(当然难不倒我)和java线程模型,这里我十分可笑,竟然把可重入锁说成自旋锁(自旋锁是lock后并不会让此线程立刻放弃cpu,而是等待一会;可重入锁是同一个线程可以多次获得)。又让我写二叉树后序的迭代版本,我压根没写过,只看过一次,那次看的实现还特别复杂,最惨的是,房间里另一对面试的有些影响我,心想这下出事了。磨磨蹭蹭写出了一个版本,面试官一看就否决了,我仔细一看,确实有问题,不过加上两个标记还是成功搞定。之后问了我要是去了小米想做什么,我十分可笑,说我想做比较酷的事(正常情况我是不会这么说的,我真正想法是做有趣的事,考虑到是小米),又问我做过什么酷的事,我答不出来,随口说了个装linux系统,使用cli,顿时感觉自己low爆了,还不如说在android上装linux呢!还问我哪方面比较薄弱,我当然是说计算机图形学了。之后说了我一些缺点,比如有点油(tfidf惹的货),知识面广但都不深。数据结构是不错(可能是我简历上写了解B树和红黑树),但算法不行(笔试最后两题,都只能给出差强人意的答案,不够极致(原话))。之后就把我打发走了,事后我还觉得有些希望。但这么多天过去了,越想越觉得没戏。

感觉自己还是太弱,还得多读书,多写代码,来年春招再投。

已拿32k小米Android高级开发offer(面试题回顾)

到现在我入职也有一段时间了,这才有空梳理一下当时的面试题。简单说下我的情况:这是一次比较平常的跳槽,不是什么逆袭大厂的剧本,只是薪资有所涨幅。

个人经历不详说,面试题对大家来说可能更有参考性,本篇先整理小米的面试题,我前后也面了很多个大厂,有空把其他几个大厂的面试题也总结一下。

Java基础肯定是少不了要问的,这轮面试Kotlin相对来说是我这些面试中问得比较多的,所以说准备面试还是要面面俱到。

我有点佩服我的记忆力了。这部分涉及到更多的 源码、原理和优化 方面的问题,Android高级开发需要具备一些什么能力大家也应该有所衡量了。

最后给大家分享一份 2246页 的 Android大厂高频面试题解析大全 ,基本上把我的面试内容都涵盖到了: Android、性能优化、Java、Kotlin、网络、插件化、热修复、模块化、组件化、增量更新、Gradle、图片、Flutter等。

这份资料免费提供给大家复习,文末查看领取方式,搞定Android面试这一份肯定够了。

第一章 Android相关 (源码分析、性能优化、Framework等)

第二章 性能优化 (GC原理、布局优化、绘制优化、内存优化等)

第三章 Java相关 (四种线程池、JVM、内存管理、垃圾回收、引用等)

第四章 Kotlin相关 (延迟初始化、Reified、Extension Functions、函数等)

第五章 网络相关 (HTTP 知识体系、HttpDns 原理、TCP,UDP,HTTP,SOCKET 之间的区别等)

第六章 插件化热修复模块化组件化增量更新Gradle

第七章 图片相关 (图片库对比、LRUCache原理、图片加载原理、Glide等)

第八章 Flutter相关 (Flutter原理、Flutter Hot Reload、Flutter 动态化 探索 、Flutter Platform Channel等)

需要这份资料的朋友私信我【面试题】就可以免费领取。

希望大家都可以把握住每一次自我提升的机会,把每一步都走踏实了,涨薪升职什么的都会迎你而来。

也欢迎大家和我一起交流Android方面的事情。

小米面试java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于小米面试几轮、小米面试java的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。