array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 记自己2018年三月份的面试经历 - 爱码网

记自己2018年三月份的面试经历

热文导读 | 点击标题阅读

我从阿里面试回来,想和Java程序猿谈一谈

如果出现这些,你就必须跳槽了

程序员如何进阶成为大神?

烦烦烦烦


过完年后,又是一波招聘热季,各种好公司、好岗位都在拼命招揽人才。自己也考虑到以后的发展和更好的工作还有未来,整天处于焦虑和烦恼的状态,看看自己现在拿到的工资,不多。所以为了改变这局面,打算下海试试水。


先讲一下自己的情况,2016 年本科毕业,在目前这家公司基本上已经在职一年半多了。而最近大半年在公司都是做 Java 开发,处于大白阶段,会写代码,但是没有深入到框架源码。


所以想要去市场上应聘 Android 岗位,还需要好好复习一番,因为半年没有碰 Android 了。结果还是发现有些知识点在面试的过程中已经记不清了,生疏了。


由于自己是在职,考虑更好的发展机会,所以并没有疯狂海投简历,而是先找了自己的同学朋友内推了一波,之后投了几家自己喜欢的公司。下面我就开始讲讲自己的经历。


面试的几家公司


亿咖通


先联系了自己的同学 A ,正好他们公司也在招 Android 开发,所以先打算试试水。


面试时了解到,该公司是在车载设备上开发 APP 的,听上去好像很高大上,是由吉利投资的。

面试一开始,讲了自己现在公司做的是 Java 开发,结果前两个面试官问我的都是一些 Java 问题,有点虚...幸好第三个面试官是 Android 开发,不然真扛不住,哈哈。


  • MyBatis 和 Hibernate 的相同和不同处,以及实用场景;

  • Redis 存储和数据库存储的区别;

  • MVP 架构模式的优点和缺点,与 MVC 的比较;

  • Android 多进程通信;

  • 目前在职公司的产品介绍和自己负责的模块;

  • Android 内存泄露,举例几个容易发生内存泄露的场景;

  • Android 插件化的原理;

  • OKHttp 的源码和原理

  • Retrofit 的源码和原理;

  • RecyclerView 中的 LayoutManager ;

  • 剩下的不记得了,时间有点久远。。。


Android 的问题基本上都回答出来了,但是一些细节上面有些遗忘,因为真的好久没写过 Android 代码了。面试完后,面试官说自己的 Android 技术水平没我好,我方了。


最后,很遗憾没有拿到该公司的 offer ,好像是因为他们公司 Android 开发招满了,没有名额了。


海康威视


吸取了之前面试失败的教训,所以又让同学 B 给我内推了海康威视,正好也在招 Android 开发。


海康威视是做视频监控、安防这一块的,是一家很牛逼的公司,所以自己心里在想要好好复习,把握机会,一块去滨江开拓事业。(/斜眼笑)


面试的过程和两位面试官聊的很愉快,轻轻松松。面试官问的问题也不难,所以技术面 easy 就过了。以下面试中问到的几个问题,可能记录不全,一部分已经忘了。


  • 自我介绍,公司产品介绍,负责哪一块;

  • 写博客的意义,为什么开始写博客,还问了“简书程序员优秀作者”这个 title 怎么搞到的,哈哈哈;

  • Kotlin 和 Java 相比,有哪些优点,有没有在实际项目中使用;

  • MVC 、MVP 和 MVVM 三种架构的区别和优点;

  • Vue.js 数据和视图双向绑定的原理,emmmmmm,这个真的不知道,只知道有个 v-bind 这东东;

  • Retrofit 框架的源码以及原理;

  • Android 插件化框架的原理;

  • 热更新框架的原理;

  • HTTPS 的原理;

  • 目前在职公司 Java 开发的架构;

  • Android 内存泄露,举例几个容易发生内存泄露的场景;

  • Android Native 和 JS 通信有几种方式,有没有用到什么框架之类的;

  • Android 布局优化相关的问题,就回答了 include 、 merge 标签和 ViewStub 以及降低 View 层级之类的;

  • 有没有了解过 React Native 或者 Weex ;

  • 接不接受大小周,接不接受晚 上加班加的晚,接不接受偶尔出差,那我肯定都说接受啊,哈哈哈哈;

  • 剩下的也记不清了,反正问的问题不是特别难,和面试官说说笑笑就过了;


因为和两个面试官聊的比较开心,轻松愉快。所以技术面顺利地通过了。感觉我会的东西比较杂,即会 Android ,又会写 Java ,还自学过 Vue.js 。


之后就叫我等待 HR 面试,此时此刻,我以为我已经稳了,结果我 GG 了。


一般来说,能到 HR 面,可以说只要别脑抽犯傻,offer 已经是探囊取物了。


和 HR 面试也不多说了,就是问到的方面涉及很多很杂,工作、生活和成长等都有,自己也回答得不错。结果到最后掉了链子,当 HR 问到我自己的期望薪资是多少,报了一个较高的数字。结果 HR 一听马上就问我最低能接受多少?我脑抽地回答最低就是这个数字了。结果,emmmmmmmmmm,一首凉凉送给自己。


现在回想起来,不知道当时自己嗑了什么药,完美地葬送了一个 offer 。

当贝网络


这家公司是自己在 BOSS 直聘上投的(没有打广告),之后收到面试通知,约在了工作日的晚上,打算下班了赶过去面试。


之后了解到这家公司专注于智能电视平台的,旗下有为智能电视和安卓电视盒打造的应用市场,就像手机里的应用宝、豌豆荚一样,好像在国内的智能电视市场里很厉害,是处于领先地位。


好了,讲回面试吧。因为面试的时间比较紧急,所以也没有好好准备,结果被面试官给虐菜了。上面试题:


  • 单元测试有没有做过,说说熟悉的单元测试框架;

  • Retrofit 框架的原,里面使用到的注解是编译时注解还是运行时注解;

  • RxJava 操作符,map 和 flatMap 的区别;

  • Fragment 在 ViewPager 里面的生命周期,滑动 ViewPager 的页面时 Fragment 的生命周期的变化;

  • 内存泄漏。举例有哪些情况会发生内存泄漏;

  • Gradle 打包;

  • AOP IOC 的好处以及在 Android 开发中的应用;

  • View 触摸事件分发机制;

  • Java基础: static 和 final 关键字的用法;

  • ArrayList 和 LinkedList 的区别和使用场景;

  • MVC 、MVP 和 MVVM 三种架构的区别和优点;

  • Dagger2 框架中 @module 和 @component 的区别;

  • Kotlin 特性,和 Java 相比有什么不同的地方;

  • MVP 架构中 Presenter 定义为接口有什么好处;

  • Jenkins持续集成;

  • Android 插件化的原理;

  • Handler 、MessageQueue 、Looper三者的关系和原理;

  • 对于 Android 开发,自己擅长哪方面;

  • Java动态代理的使用,InvocationHandler 有什么用;

  • 为什么 Google 会推出Fragment ,有什么好处和用途? 直接用 View 代替不行么?


这次面试有好几题都回答不上来,有些地方不够深入。问了一下面试官,他已经做了六年的 Android 开发了,厉害厉害。


本来回去的路上感觉这次面试肯定挂了,结果出乎意料地第二天 HR 打给我电话说我的技术面通过了。之后因为路途太遥远,所以 HR 面直接在电话里面试了。


最后在谈薪资的时候感觉自己对这份 offer 提供的薪资不太满意,所以考虑了几天拒绝了这份 offer 。之后就又开始寻找有没有更好的机会了。


有赞


有赞这家公司也是我在 BOSS 上投的(真的没有打广告),投完之后,两三天内一点消息都没有,我以为是看不上我了。结果之后发短信给我说需要电话面试我,那就来吧来吧,没啥好虚的。


有赞之前还是了解过的,是一家比较注重技术的公司,在杭州也是比较有名气的。所以想好好发挥,拿到 offer 。


有赞技术面我一共面了三轮,分别是:电话面试、现场面试、Android 组 Leader 面试。那么我就把这三轮的面试题一轮一轮地说。


第一轮电话面试


  • 项目介绍,自己负责哪些内容;

  • 安卓安全方面了解过吗,反编译、加壳之类的;

  • MVC 、MVP 和 MVVM 三种架构的区别和优点;

  • Retrofit框架的原理,感觉这个每次都会被问到。。。;

  • HTTPS 握手的步骤和过程;

  • Jenkins 自动构建;

  • Android Studio 3.0 中 Gradle 的 api 和 implementation 有什么区别;

  • HandlerThread 的原理和使用场景;

  • AsnycTask 的原理和使用场景;

  • Handler 、MessageQueue 、Looper三者的关系和原理;

  • Android 插件化的原理;

  • 热修复的原理;

  • 应用程序崩溃统计以及数据分析;


电话面试的内容差不多就这些,面完后又过了三天才给我通知说有下一轮面试,在此期间我以为我电话面试挂了呢。。。


第二轮现场面试


  • Android 插件化的原理;

  • 热修复的原理;

  • Java GC 回收,如何判断对象存活;

  • Java GC 算法;

  • AsyncTask 、HanlderThread 、IntentService 的原理和使用场景;

  • 会哪些 RxJava 操作符,map 和 flatMap 的区别;

  • Retrofit框架的原理,emmmmmm ,又是这个;

  • Bitmap 优化;

  • RecyclerView 和 ListView 的相同和不同点,在 item 回收上有什么不同;

  • View 事件分发机制;

  • 说说 apk 打包流程;

  • 有没有做过 apk 多渠道打包;

  • Android 组件化的原理,还有一些组件化平时使用的问题;

  • Binder 有没有了解过;

  • HashMap 的存储原理;

  • Kotlin 特性,和 Java 相比有什么不同的地方;

  • Android Framework层有没有了解过,说说 Window 窗口添加的过程;

  • Window Activity View 三者的关系;

  • 消息推送有没有做过,推送到达率的问题;

  • Android 分享 SDK 有没有做过;


第二轮的面试也通过了,不过因为约在了晚上,所以 HR 已经下班了,所以跟我说之后会联系我的。


第三轮现场面试


过了一天,有人加我微信,说再约一次技术面,是团队里面的 Leader 来面试我。没办法,继续干,又约在了工作日晚上面试。


  • 项目介绍,负责内容等;

  • HTTPS 的原理;

  • HTTP 2.0 有没有了解过;

  • 讨论技术和业务哪个重要;

  • Android 热修复原理;

  • 剩下的记不住了...


因为技术面之前已经面了一轮,所以这次 Leader 面试技术问题提问比较少,大部分时间都在互相讨论聊天,当然结果也是很愉快地结束了。之后叫我等一下,HR 来面试我。


因为之前海康 HR 面还让我心有余悸,所以这次 HR 面试也是格外谨慎。幸好,HR 面试没出什么大问题,叫我回去等通知。


最后,等了四天这样子,有赞 HR 给我打电话说顺利通过面试了,给我发了 offer ,大功告成了。


写在结尾


现在回头看看,自己面试的公司也只有三四家,不算多,也是因为自己还在职的原因吧。


至于结果也还算满意,拿到有赞的 offer ,又要开启一段新的征程了。

作者:俞其荣

链接:https://www.jianshu.com/p/299f632b35f4

你有好的文章想和大家分享欢迎投稿,直接向我投递文章链接即可


最后,欢迎大家加入我们的知识星球,第二期开期起航火热进行中,已有近1000人加入学习

欢迎大家尽早加入,这期是到2019年3月10日结束,所以越早加入越好,优惠活动结束,现入圈费用由79元提至89元,以后每满100人费用增加10元~

记自己2018年三月份的面试经历

微信扫描或者点击上方二维码领取Android\Python\AI\Java等高级进阶资源

更多学习资料点击下面的“阅读原文”获取

记自己2018年三月份的面试经历

相关文章: