首页 > 编程知识 正文

google材料工程师面经(mdpi面试题及回答)

时间:2023-05-06 03:20:14 阅读:80862 作者:4704

面试中遇到的一些问题

问题1:listview和RecyclerView的使用有什么不同?

问题2 :明明recycler view可以在很多方面取代ListView,谷歌为什么没有在ListView上画过时的横线?

问题3 )你用过MVP。 那么,你知道Dagger2吧。 要我介绍一下吗?

Q4 ) HashMap的内部实现原理?

Q5 )活动生命周期、哪些启动模式和APP场景?

Q6 )你用过同步任务。 那么,AsyncTask的内部实现原理是什么?

问题Q7:AsyncTask在内部维护线程池。 串行还是并行? 你是怎么维持的?

Q8 )那么,我们来谈谈线程池的4个初始化吧?

问题9 :我用过MD。 你知道如何定义Behavior吗?

问题Q10:RecyclerView的拖动是如何实现的?

问题11 )写SingTop有哪三个条件?

问题12 :输入按升序排列的数组int[] arry={-5,-1,- 0,5,9,11,13,15,22,35,46 },从数据中输入x,int x=31,从而得到x的两个数量

问题13 )在一个数据库中,如何在int类型a、b、c、d的4列表中随机插入10000件数据? 如何按升序取出a列前10个?

Q14 )服务的两种启动方法有什么不同?

Q15 )第3级缓存、处理器的结构是什么?

如果有剩下的时间,请听我说

从毕业到现在面试只有几家公司,但只有头几次很顺利,见到第三家公司的时候给了我报价! 前两次的就业活动没有考虑今后需要什么。 你对自己未来的计划是什么? 有工作的话,工资满足自己的要求就行了。 所以,在智联招聘中选择工资范围,做海投,等着面试电话!

我做了2、3年的安卓开发。 工作任务就是创建一些接口,简单使用RecyclerView,网络框架也是集成别人封装的直接使用,甚至是第三方共享、支付等。 可以说完全没有技术上的提高。 与工作一年左右的人相比,有几个项目的优势! 所以下次出来找工作,还期待15K。 说起来,心里很慌。 有什么理由?

1、小公司要求不高,自己也持有只要能发挥功能的态度

2、无法把握行业趋势,没有未来的计划(所谓的混吃等死) ) ) ) )。

3、对自己的工作不感兴趣,即使上班有空闲时间也不深入学习

谈谈这次求职面试的经验和感想吧! 这次面试接受了大小10多个面试! 根据我自己在简历上写的几个商城类APP的工作经验,智联和拉钩也只有小公司会叫我去面试! (所以技术的深度很重要)

前两次没怎么准备面试,所以直接over也没关系! 第一个姐姐一脸懵逼地问我(屌丝节目单猴子和妹妹说话就紧张、心跳加速、口干舌燥、无言)! 她先让我自我介绍,但好像脑子短路了! “你认识的程序员表现力很差,嗯。 嗯。 请看简历! ’她直接无语了!

然后她看到我的简历上有(Q1 ) ListView和RecyclerView的使用,就问了它们的区别。 我也只能简单地回答RecyclerView的使用方法和ListView的使用方法! 然后她问我(Q2 )明明RecyclerView在很多方面取代了ListView,谷歌为什么不画一条过时的横线? 当然,我不知道怎么回答,所以让她教了我。 然后她告诉我ListView采用了回收机制。 在显示几个轻量级List时效率更高。 我马上就想通了!

之后,你给我用过(Q3 ) MVP吗? 那么,你知道Dagger2吧。 要我介绍一下吗? 我又一脸懵逼! 这个面试就这样被妹妹炒鱿鱼了! 回到这里,我们再来看看ListView和RecyclerView的区别、缓存机制、Androidmvpretrofitdagger2rx Android框架等等。

第二天又去了小公司,这次是我用“不知道”回答的最多! 但是,我从容面对了这样的结果。 因为自己真的很会做饭。 面试开始还让我做了自我介绍。 这次准备中,回答没那么难。 之后,他开始问我技术问题(Q4 ) HashMap的内部实现原理? 我以为我只能说“不知道”! 连接

下来就问我(Q5)Activity生命周期,有哪些启动模式,以及应用场景?这个还是难不倒我的!问到(Q6)你用过AsyncTask,那你跟我说说AsyncTask的内部实现原理?因为我昨晚看了下,就开始跟他说首先我说说它的出现是为了解决在子线程中做了耗时操作后需要回到UI线程去更新这样一种情景,然后就开始准备说它的四个方法(doInBackground(Params...) 、publishProgress(Progress...)、onProgressUpdate(Progress...)、onPostExecute(Result)),他立刻就打断我了,说我问的是内部原理,(Q7)内部维护了一个线程池,是串行还是并行,怎么维护的?这一问,我又是一脸懵逼,只能说“不知道”!他也很无奈,又问(Q8)那你说说线程池的四种初始化吧?我的第一反应是看都没看过,一句“不知道”又让他无语了!此时的我死猪已经不怕开水烫了!(Q9)你用过MD,你知道怎么定义一个Behavior吗?“不知道”!(Q10)RecyclerView的拖拽怎么实现的?“不知道”!最后一曲凉凉送给自己!

接下来的几家公司都是创业型的小公司,面试的人都是一些不懂Android开发的或者是会一点点!首先上来就是自我介绍,这我都说了好多遍了,我15年毕业于哪里哪里,从毕业一直到现在从事的是Android开发的工作,做过什么什么类型的项目!大学学的是软件工程,学过Android、计算机网络、嵌入式、数据库、C#等等!(一顿操作猛如虎,哈哈。。。)但是这些创业型的小公司都要求你有能独立完成APP的能力,然后就跟你说什么公司背景有多牛呀,有期权股份呀,我们团队怎么优秀,这个平台能提升你很多能力呀,但是我们刚开始呀不会给你开太高的工资,但我们年终业绩好的话可以给你发4~6个月薪资给你做奖金!可能在这期间要加加班呀什么的!

在这些中有一家都面试到了和项目经理谈了,自我感觉和技术总结聊得很不错,和项目经理也谈了自己未来的规划,先从Android入手技术深入,然后再自学H5前端,再像java后台靠拢做一个全栈工程师!项目经理也说你过来我们这有很好java后台资源,而且Android会交給一个人来做,未来业务发展也会加入H5,我们这能给你提供这样的一个平台!最后在某些方面我们的目标达成一致了,行先这样,我们再商量下,你回去等通知吧!结果我回去了,加了技术总监的微信,傻傻等了一天,啥也没等来!(忠告:基本叫你回去等通知的都是没戏!)

当然这些公司中也有向我抛出橄榄枝的,有一家给我试用8k(不交社保),转正10K,大小周!一不交社保,二是大小周,三是那没我想要的,我思来想去,辗转反侧,以不能把自己贱卖为由,我果断谢绝了!

比起套路,我更喜欢那些能直白告诉我结果的人!在去一家稍微大点的公司,首轮就是笔试!我笔试有一道算法题和数据库的题做不出,当时就知道这次没戏了!但很感谢面试我的那害羞的小猫咪,和我一样15年毕业的,但很牛逼!他拿着我的笔试答卷,(Q11)首先是写一个SingTop,那害羞的小猫咪就问我,单例要注意些什么?我首先回答的到的同步问题,再说构造方法私有,可我忘了一点静态调用!那害羞的小猫咪就给我一条条理出来1、构造函数私有 2、含有一个该类的静态私有对象 3、有一个静态的公有的函数用于创建或获取它本身的静态私有对象 4、其次才是考虑线程同步!(Q12)一个按升序排列好的数组int[] arry = {-5,-1,0,5,9,11,13,15,22,35,46},输入一个x,int x = 31,在数据中找出和为x的两个数,例如 9 + 22 = 31,要求算法的时间复杂度为O(n);

我给出的答案是:

1、先用二分法排除比x大的数,得到pos2、再从0到pos 通过两层for循环通过一个数与剩下的所有数来相加,等于x的时候break循环

那害羞的小猫咪就开始给我分析,首先第1点想法就是错的,应为给出的数组中有负数,负数+正数有可能得到中间的那个数,再则它这靠得是一个双向逼近的算法!

接下来是一个数据库题目(Q13)如何向一个数据库具有int类型A,B,C,D四列的表中随机插入10000条数据?如何按升序取出A列中前10个数?这道题我没答,我以为考的是数据库操作的基本语法!后来那害羞的小猫咪慢慢跟我分析这道题的考点在哪?他说:“这些语法我也不记得,但是像我们这样具有两年多工作经验的人百度一下也是能做得出的,但是这里考的不是基本语法,数据库其实也就是一个文件,一个具有固定封装特定语法操作的文件,既然是文件读写就要考虑到效率问题!在数据库中提高效率用到什么,是事务!如果一条条插入,其实每次插入都会维持一个事务,也就相当于文件的打开和关闭,10000次的打开和关闭是很消耗性能的,所以要在插入前使用BEGIN TRANSACTION开启事务,再10000条数据插入完成时用END TRANSACTION结束事务,这样就相对于文件只打开了一次,10000条批量操作完后,再关闭文件!”

下面一题是(Q14)service两种启动方式有什么区别?我回答得很简单!他就直接说“面试这笔试也是很重要的一部分,简历大家可以随便写,但是一些技术水平在笔试这是有所体现的,所以在我这笔试这关是没有通过的!”这个时候我挺服气的,毕竟是自己准备不好。后来那害羞的小猫咪就跟我说:“这面试题该背的该记得还是要记,花个两三天或者一周去准备,对自己多要一两K也是很值得的,所以该辛苦的还是要辛苦下!”我挺感谢这位害羞的小猫咪的,也挺喜欢和这样率直随意的人打交道!

最后经过两个星期的面试,找了一家符合自己发展方向做智能硬件的公司!经过这段时间的面试,懂得了技术深度的重要性,还有职业规划的重要性!目前个人认为纯App开发很容易被取代,我个人的职业规划

1、以Android技术为基础深入,再学前端,再扩展到Java后台,做到一个全栈工程师

2、向Android智能硬件,NDK开发转型,因为我大学搞过嵌入式,有些基础,这一行门槛稍微高些不容易被取代!目前来说自己是打算朝着第二点去发展了!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。