2018-08-07 11:28:19 377浏览
这几天,小编收集了一些面试干货。因为参加Android培训的也会进行一系列的面试。这几天会持续送给大家。今天的知识预热一下啦,从明天开始会给大家案例~先看看今天的内容吧~今天是别人家的孩子!
基础
不管是Android基础还是Java基础以及常见的数据结构,这些是无原则地必须要熟练掌握的,尤其是非计算机专业的同学,面试官一上来肯定是问你基础,要是基础表现不好很容易被扣上基础不扎实的帽子,常见的就那些,只要你平时认真思考过基本上面试是没太大问题的。
算法
基本上每家公司都会有算法题,我当时是看了左程云的《程序员代码面试指南》,重点看了数组跟链表,二叉树没有去刷算法题,对于二叉树的掌握在于三种基本的遍历以及在排序算法中堆排序中用到的二叉堆,然后每道算法题都先自己去实现,先写思路,然后自己去实现一遍,然后再看看答案,记住答案的思路,第二天再重新按照答案的思路实现一遍,这种效果非常好,我没有去刷很多题目,而是想通过这种方式去分析常见的算法题,所以我不大建议去刷算法题,首先作为客户端开发,涉及不到很多的算法,第二,面试的时候考的算法大部分都是很基本的数组组跟链表构成的,最后算法这个东西是个无底洞,个人觉得没必要去刷题,刷题可能对小公司有用,但是大公司更看重你解决问题的能力。
虚拟机
JVM
对于Java,加载的是Class文件,一般会问到Java运行时的内存分配,类加载机制以及GC,实际上后面两个问地比较多,尤其是GC相关,往往结合四种引用出题,最后会通过这个来引出内存泄露相关的一些问题。
DVM&ART
Android的虚拟就DVM以及ART是对JVM做了一些优化,加载的是dex文件,对Class字节码做了一些优化,这个里面其实挺复杂的,我只知道一些基本的概念。
ClassLoader
这个其实要是问起来其实是有很多东西的,如果是Java相关其实还好,会问你类加载机制,但是Android里面除了Java的类加载机制之外,还会引出插件化跟热修复。
JNI
基本上稍微大点的公司都会问到,不过我的回答始终如一:我只能看懂C的代码,项目中没有用过JNI,当然这个属于加分项,因为我当时的选择是把我用过熟悉的东西研究地滚瓜烂熟,而不是在自己平时很少接触到的东西上面搞个一知半解。
Binder
Binder系列,各种AMS,WMS,PWS,常问到的有APP的启动流程,然后两个Activity相互跳转的时候的生命周期,Activity的生命周期。
心态
不要想着什么都会,那样不现实,比如说我对Binder机制以及热修复,插件化这块儿确实了解地比较浅显,也跟高德,爱奇艺等公司的面试官聊过这个话题,这些属于加分项,不会影响到最终的面试结果,还有就是算法,面试最多考一道或者两道算法,所以没必要在这方面花太多的时间,掌握好常见的数组跟链表,二叉树/堆了解一下,基本就够了,公司看重的是你解决问题的能力,你把原理掌握好,常见地基本上都没什么问题。
当你基础知识OK,自己用过的东西的理解地有深度,解决问题的能力OK,如果面试官想要你,那么他会去找你的优点,反之他会去找你的缺点。所以如果你想进某家公司,那么你就按照他们的要求去面,就算面不上那么也没什么,只能说不合适,然后查漏补缺继续面,不要因为某一次或者几次的不顺就否定自己,有些公司的面试官就是喜欢装,而且还是大公司的。
学历很重要,我的学校只是个普通一本,相对一般,所以投了很多知名互联网公司简历都过不了,就连好大夫在邀请我面试的时候特意问了我是不是统招一本,任何行业都看重学历,不仅仅是IT,那些说学历不重要的基本上都是一些学历比较好的或者是在Android比较火地那个阶段开始搞地Android,他们这批人往往会觉得在03年跟18年加入的阿里的难度是一样的,那些觉得学历不重要的可以去看看张雪峰老在《演说家》中的演讲,不要说什么3年以后公司就不看学历了,学历是一辈子的事情,那些高考能够碾压你的人,出了社会只要他们愿意,照样能碾压你,你努力,你拼命,别人也不会睡大觉等你。
科班很重要,如果你本科学地是非计算机专业,任何一个面试官或者HR都会认为你基础不行,你需要花很多的时间去精力去补基础,然后再花时间跟精力在HR不Pass掉你简历的情况下摘掉基础不行这顶帽子。
工作背景很重要,如果你有大公司背景给你背书,相同的岗位,你进入的门槛比有大公司背景的人要高地多,如果你有大公司背景,不管是面试官还是HR都会在你面试前给你打一个较高的基本分,这个是很有利于你通过面试的。
不过上面都是既定的事实,你没法改变,所以当意识到这些问题的时候,我只能去不断地提升自己的能力,去花更多地代价去获得一个面试机会,去证明自己的能力进而进入到一个比较好的平台。
以上这篇就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持扣丁学堂,想要了解更多详情请登录扣丁学堂官网咨询或者关注微信公众号,里面有最新的扣丁学堂Android视频教程等你来看!
【关注微信公众号获取更多学习资料】