马上过年了,过完年回来就是春招和金三银四的面试季了,今天分享一下面试前的准备技巧和一些Android面试要点,这篇文章适用于所有需要就业的小伙伴,不管你是名校毕业,还是双非出身,我相信这篇文章能给你带来一点点的小的收获!
主要讲的几个部分:
引人注目的简历 常见的面试小技巧 Android 面试要点 高质的学习资料 引人注目的简历 准备简历有两点是绝对要记住的:
不要等到真正开始找工作前几天才开始准备你的简历,越早准备越有优势! 简历一定要用 PDF 格式,一定要用 PDF 格式,一定要用 PDF 格式! 简历真的很重要很重要 ,招聘系统或者是邮箱里一天可能会收到几十万份 甚至更多的简历,HR可能打开10秒都不够就决定这份简历是不通过还是进入下一阶段了。
我的简历经过了五个版本的修改,从一开始的简历挂,到现在,基本上都变成笔试挂了 (有毒?)
简历的目的:让企业的人从整体上了解你是一个具备什么能力的人
简历可能涉及到的分点都尽可能全地给你列出来了,你只需要选择其中适合你的即可:
个人信息 :你的姓名、联系方式、求职岗位(切忌不要写无关的内容例如身高体重之类的)掌握技能 :这一块是最重要的,面试官会根据你写的内容考察你掌握的知识 校内经历 :在校期间你主要的突出表现项目经历 :如果有团队项目最好,也可以从 GitHub
上找一个项目练手,再没有,可以把学校的课程项目写上去呀!竞赛经历 :数学建模、ACM、蓝桥杯这些高质量比赛一定要写实习经历 :这点不是必须的 ,如果有,最好描述清楚实习的工作内容、表现和收获 获奖证书 :CET-4,CET-6,奖学金,软著,论文······自我评价 :不要局限于写上烂大街的协作能力强,工作认真······ ,可以要加上具体内容去支撑你的每个自我评价 如果你不知道该怎么写简历,我可以推荐两个链接给你,我基本上是按照他们的建议来写简历的:
一个程序员的简历模版分享
常见的面试小技巧 面试有很多小技巧的,特别是和 HR 对线的时候(HR看到不要找我呀,害怕.jpg)
我们先来看看和技术面试官 对线的时候,有哪些可以用的小技巧:
不懂不要说不懂 :面试官在知识深度上超出我们的掌握范围,如果问到不懂可以参考下面的做法:可以结合自己的理解去回答,无论正确与否,虚心请教 若是有标准答案的问题但不懂,可以说:“目前还没有接触到这部分知识,面试完以后会去学习,加强理解!” 引导面试官 :面试官抛出一个问题时,围绕该点展开回答,可以串联一些其它知识,但不要说太多,引导面试官:提到 ArrayList 时,提一下 LinkedList,引出 LinkedList 提到 HTTP 时,提一下 HTTPS,引出 HTTPS 手撕代码 :切忌抬手就写 ,要确定题意,对有不理解的地方要敢于提问。解题时跟面试官说自己的思路,以及每一步干什么,一边写一边向面试官解释 。不要一开始就追求最优解,面试官不会太反感粗糙的代码,但他希望你是一个有逻辑、思路严谨的人 。 面试官会引导你优化你现有的代码,不必因为一开始写不出最优解而苦恼。 反问环节 :要从面试官那儿获得对自己的反馈,比如:你觉得我的基础如何,之后该向哪个方向加强? 当前企业最主要的技术栈是什么? 公司目前的主要业务是什么?该岗位主要负责什么内容? 当我们经历了技术面的洗礼后,顺利来到了 HR 面试,这时候要记得:在 HR 面试环节,要在不过分夸张的情况下表现出自己的优秀,表现出对加入公司的向往。
HR 主要会问以下几项内容:
了解你的个人情况(校内经历、兴趣爱好、家庭情况···) 询问你对公司的了解,我们可能面试很多家公司,不可能每家公司都了解很透彻,只要了解公司的行业,主要产品即可 询问你的期望薪资 (这是 Battle 名场面!最后再展开说) 反问环节 :可以问 HR 关于企业文化 和培养新人的制度 等,如果有完善的制度和文化,一般 HR 都会回答的很流利的,否则就要慎重了。Android 面试要点 整个面试题分为三个部分:Java、Android和项目经验。
Java技术 Java基础 对抽象、继承、多态的理解 泛型的作用及使用场景 枚举的特点及使用场景 线程sleep和wait的区别 JAVA反射机制 weak/soft/strong引用的区别 Object的hashCode()与equals()的区别和作用 集合类 JAVA常用集合类功能、区别和性能 并发相关的集合类 部分常用集合类的内部实现方式 多线程相关 Thread、Runnable、Callable、Futrue类关系与区别 JDK中默认提供了哪些线程池,有何区别 线程同步有几种方式,分别阐述在项目中的用法 在理解默认线程池的前提下,自己实现线程池 字符 String的不可变性 StringBuilder和StringBuffer的区别 字符集的理解:Unicode、UTF-8、GB2312等 正则表达式相关问题 注解 Android技术 Android基础 四大组件的意义及使用,生命周期回调及意义 AsyncTask、Handler的使用 Android系统层次框架结构 AsyncTask的实现方式 AsyncTask使用的时候应该注意什么 Android常见的存储方式 Looper、Handler和MessageQueue的关系 Activity的启动流程(考察对Framwork的熟悉程度) 多进程开发的注意事项(Application类区分进程,进程间内存不可见、进程间通讯方式) Resource相关 .9图片的意义 style和theme的作用及用法 dpi、sp、px的区别以及转换关系 raw和assets文件夹的作用,二者有何区别 Android系统如何在多个资源文件夹下查找匹配最合适的资源 虚拟机 Java内存模型 Android虚拟机的特点 Dalvik和Art的区别 熟悉垃圾回收的实现机制,了解虚拟机的GC类型 View相关 常用组件的使用:ListView、RecyclerView及Adapter的使用 View之间的继承关系 Invalidate与postInvalidate的区别 自定义View的实现方式(根据项目经验询问相关组件)。 onMeasure/onLayout/onDraw的作用 Paint、Matrix、Shader等绘制相关类的方法作用 详细描述事件分发机制 动画 Android有哪些动画的实现方式 Interpolator类的意义和常用的Interpolator ViewAnimation与属性动画有什么区别 如何自定义ViewAnimation 属性动画的实现原理 图片处理 一般项目中如何加载大图 图片压缩的方式 如何不压缩图片加载高清图 图片加载过程中,一般会使用缓存,这个缓存的主要作用是什么 谈谈自己熟悉的图片加载框架 项目经验 开发工具 代码管理工具:SVN、Git 常用的调试工具:Hierarchy Viewer、DDMS等 CI工具:Lint检查,FindBugs、Jenkins 内存分析工具:dumpsys、memoinfo、MAT 项目工程 APP更新策略:推送或者拉取? 如何统一处理错误崩溃 如何进行用户行为收集 日志管理有哪些要点?(Debug包开放,release包关闭,错误日志反馈) 打包方式Ant、Maven、Gradle 机型适配情况 开放平台 是否使用过第三方平台 常用开放平台的熟悉度(微信、QQ、微博、支付宝等常用的支付和分享) 是否进行过对第三方平台的统一封装? 是否自己开发过SDK? 设计相关 有哪些常用的设计模式、设计原则 设计模式在Android源码中的应用 设计模式在项目中的应用 项目中的分包方式 MVC在android中的应用,利弊 android项目中的常见层次结构,包划分 有没有设计过项目中的层级结构、包划分 好了,大概就这么多,大家可以考察下自己对于知识点的掌握情况。
对于答案,我觉得只要你真的会了,用自己的语言去描述就是最好的答案~ 不过为了让大家方便复习,我将耗时一年多整理的1025页的Android高级面试及答案解析 分享给大家~
接下来重点来了!!!
高质的学习资料 如今入门Android的门槛已不像十年前那么高,学习资料随便百度一搜一大把,我们需要选择适合自己的、高质的学习资料来学习,否则会降低我们的效率。
我整理了各个科目的一些学习资料,并且自己手工制作了几幅思维导图,相信一定对你有帮助!
简信我「面试」即可获取该文章中所有的高清脑图!
计算机网络 计算机网络是开发中的重中之重,基本上是离不开网络这一块的,因为我们开发的应用要给客户用的,给客户都用就涉及到联网,联网就涉及到网络。
对于开发人员而言,应用层、传输层是最最重要的,网络层次之,其余作为了解,感兴趣可以深入学习。
我阅读过的书籍有三本:
《图解 TCP/IP》 《图解 HTTP》 《计算机网络:自顶向下》 前两本书用大量的图解让我们对整个网络世界进行宏观上的了解,第三本书会更加系统、全面地将每一层的知识点讲解透彻。
数据结构与算法 这一块是最最重要的,只要你是研发岗位,就逃不过这一关,但恰恰这是最难的一关,因为它的灵活多变,学习的难度自然会上升,但这也是被最多人忽略的一个领域。
Android七大核心知识 如果是从事 Android 开发,这部分就相当于我们的根基,这部分知识面有些广,重要的也很突出:
架构师筑基必备技能: 深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IOAndroid高级UI与FrameWork源码: 高级UI晋升+Framework内核解析+Android组件内核+数据持久化360°全方面性能调优: 设计思想与代码质量优化+程序性能优化+开发效率优化解读开源框架设计思想: 热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件JetpackNDK模块开发: NDK基础知识体系+底层图片处理+音视频开发微信小程序: 小程序介绍+UI开发+API操作+微信对接Hybrid 开发与Flutter: Html5项目实战+Flutter进阶上面这几个知识点是我在面试过程中被问到过次数最多的,如果需要系统的学习,针对这些知识点,我手头上准备了不少的电子书和笔记,将这些笔记将各个知识点进行了完美的总结。
Android开发相关源码精编解析 只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。
Android高级开发面试题及答案解析 面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三。
完全掌握以上这些不能够让你马上冲进大厂,但至少能够让你踏进中厂或者好的小厂,踏进大厂也只是时间问题!
总结 (1)准备一份好简历,格式一定要用 PDF,参考网上的模板不断优化自己的简历内容
(2)3月至5月 是春招和金三银四的招聘时间,6月至8月 是秋招提前批的黄金时间,9月至11月 是秋招的大潮,一定要跟上!
(3)投递简历一定要内推 ,内推码和公司都在牛客网
(4)要有自己的一两个面试小技巧,可以在不断面试中总结出来
(5)心态要稳,要淡定,你总能成功的
英雄不问出处,总有一片属于你的天地,一定要试着坚持下去!
羡慕那些年薪几十万的同学吗?羡慕。 羡慕那些有大厂 Offer 的人吗?羡慕。 羡慕那些已经找到自己热爱的岗位工作的人吗?羡慕。 切忌因此而焦躁不安,盲目的攀比只会让自己的眼光更狭隘,做好自己的职业规划非常重要,享受追逐梦想的过程吧,万一实现了梦想,你的下一站又是哪里呢?
最后再补充一句,不要妄自菲薄,但也不要眼高手低,我们都是普通人,比昨天的自己更进步一些就好了!
以上内容均免费分享给大家,需要完整版的朋友, 点这里可以看到全部内容 。