android面试必过(如何不浪费又一年的求职黄金期)

android面试必过(如何不浪费又一年的求职黄金期)(1)

马上就又要到金三银四求职的黄金期了,很多资深面试官都说其实他们每天都要面试考核很多应聘者,但是通过的人却寥寥无几。他们有几个面试观点可能比较重要,对你的面试和职业规划或许会很有帮助,在这分享给你:

现在的你,到底该不该换工作?

待遇薪资、公司平台、团队氛围、老板实力等等这些因素,综合影响着你的工作和发展,如果没考虑清楚这些就去换工作,你的沉没成本就太大了,每次都重新开始,毫无积累。

应聘是需要准备的。

首先是简历,要用自己的经历去聊,而不是用文字写。并且不要打自己的脸,精通就是精通,熟悉就是熟悉,了解就是了解。还有,面试前要准备哪些技能知识?要不要准备算法题?以及如何表达你做过的项目?这些你都需要好好地准备一下。如果你没有准备的话,那么被pass掉的概率会非常大。

仅仅是做项目变现的公司,该去么?

这样的公司的核心竞争力主要是利用自己的人脉和关系拉项目,“做一票、赚一票”。他们并不创造新事物,只有创造新事物的公司才能称得上是创业工作。如果你想加入创业公司,很多时候靠的是一股子冲劲儿,直接点说就是赌,你想清楚了吗?

很多人没有意识到“慢性死亡”的过程。

你当下可能身处一家不错的公司,薪水也很高,工作也很舒心,好像没必要折腾。但在老板的角度看,这是个简单的性价比问题。时间不断流逝,如果你只是资历更深了,但是能力没有迈上新的台阶,那么相比于一个更加年轻的程序员,哪个性价比更高?答案是显而易见的。

这些问题是不是让你恍然大悟,又心生惶恐。面试不等同于考试,搞定考核范围内的所有内容,考试也就八九不离十了。但面试是人与人的沟通,你也可以看成是一次博弈。面试流程是怎样的?面试官在想什么?更重要的是,面试更应该站在职业规划的层面去看待,去长期规划。

眼看年底到了,肯定很多人都跃跃欲试,准备跳槽到大厂,升职加薪。阿里巴巴、腾讯、字节跳动,这些大厂技术面试官的选人思路是怎样的?废话不多说,先看看这份《大厂面试攻略》大纲吧,可能正是你面试大厂需要的。

阿里巴巴一面
  • 说一下你怎么学习安卓的?
  • 项目中遇到哪些问题,如何解决的?
  • Android事件分发机制?
  • 三级缓存底层实现?
  • HashMap底层实现,hashCode如何对应bucket?
  • Java的垃圾回收机制,引用计数法两个对象互相引用如何解决?
  • 用过的开源框架的源码分析
  • Acticity的生命周期,Activity异常退出该如何处理?
  • tcp和udp的区别,tcp如何保证可靠的,丢包如何处理?
二面:
  • 标号1-n的n个人首尾相接,1到3报数,报到3的退出,求最后一个人的标号
  • 给定一个字符串,求第一个不重复的字符 abbcad -> c

android面试必过(如何不浪费又一年的求职黄金期)(2)

美团一面
  • 自我介绍
  • 面向对象三大特性
  • Java虚拟机,垃圾回收
  • GSON
  • RxJava Retrofit
  • 图片缓存,三级缓存
  • Android启动模式
  • 四大组件
  • Fragment生命周期,嵌套
  • AsyncTask机制
  • Handler机制
二面
  • 面试官写程序,看错误。
  • 面试官写程序让判断GC引用计数法循环引用会发生什么情况
  • Android进程间通信,Binder机制
  • Handler消息机制,postDelayed会造成线程阻塞吗?对内存有什么影响?
  • Debug和Release状态的不同
  • 实现stack 的pop和push接口 要求:1.用基本的数组实现2.考虑范型3.考虑下同步问题4.考虑扩容问题
豌豆荚豌豆荚一面
  • 介绍一下你的项目
  • 网络框架的搭建
  • 图片加载框架的实现
  • 写个图片浏览器,说出你的思路
  • 上网站写代码,如下: 有一个容器类 ArrayList,保存整数类型的元素,现在要求编写一个帮助类,类内提供一个帮助函数,帮助函数的功能是删除 容器中<10的元素。
豌豆荚二面
  • Activity的启动模式
  • 事件分发机制
  • 写代码,LeetCode上股票利益最大化问题
  • 写代码,剑指offer上第一次只出现一次的字符
豌豆荚三面
  • 聊项目,聊大学做过的事
  • 写代码,反转字符串
  • 写代码,字符串中出现最多的字符。
新浪微博一面
  • 静态内部类、内部类、匿名内部类,为什么内部类会持有外部类的引用?持有的引用是this?还是其它?

静态内部类:使用static修饰的内部类匿名内部类:使用new生成的内部类因为内部类的产生依赖于外部类,持有的引用是类名.this。

  • ArrayList和Vector的主要区别是什么?

ArrayList在Java1.2引入,用于替换Vector

Vector:

线程同步当Vector中的元素超过它的初始大小时,Vector会将它的容量翻倍

ArrayList:

线程不同步,但性能很好当ArrayList中的元素超过它的初始大小时,ArrayList只增加50%的大小

  • Java集合类框架
  • Java中try catch finally的执行顺序

先执行try中代码发生异常执行catch中代码,最后一定会执行finally中代码

  • switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch支持使用byte类型,不支持long类型,String支持在java1.7引入

  • Activity和Fragment生命周期有哪些?

Activity——onCreate->onStart->onResume->onPause->onStop->onDestroy

Fragment——onAttach->onCreate->onCreateView->onActivityCreated->onStart->onResume->onPause->onStop->onDestroyView->onDestroy->onDetach

  • onInterceptTouchEvent()和onTouchEvent()的区别?

onInterceptTouchEvent()用于拦截触摸事件onTouchEvent()用于处理触摸事件

  • RemoteView在哪些功能中使用

APPwidget和Notification中

  • SurfaceView和View的区别是什么?

SurfaceView中采用了双缓存技术,在单独的线程中更新界面View在UI线程中更新界面

  • 讲一下android中进程的优先级?

前台进程可见进程服务进程后台进程空进程

tips:静态类持有Activity引用会导致内存泄露

二面
  • service生命周期,可以执行耗时操作吗?
  • JNI开发流程
  • Java线程池,线程同步
  • 自己设计一个图片加载框架
  • 自定义View相关方法
  • http ResponseCode
  • 插件化,动态加载
  • 性能优化,MAT
  • AsyncTask原理
  • 65k限制
  • Serializable和Parcelable
  • 文件和数据库哪个效率高
  • 断点续传
  • WebView和JS
  • 所使用的开源框架的实现原理,源码
网易杭研一面:
  • 自我介绍
  • Android中ClassLoader和java中有什么关系和区别?
  • 熟不熟jvm,说一下Jvm的自动内存管理?
  • 语言基础,String类可以被继承吗?为什么?
  • Final能修饰什么?(当时我说class、field、method,他说还有吗?然后又叫我不要在意,后来回想起,应该是问到我在参数里面要不要用final,接下来是因为匿名内部类)
  • Java中有内存泄露吗?(先说本质,再结合handler 匿名内部类)当时如何分析的?
  • 描述下Aidl?觉得aidl有什么缺陷(这里在这个问题上回答有欠缺)
  • 评价一下我,如果顺利进网易,需要往技术栈加什么点尽快投入业务?
二面:
  • 用过什么开源,举一个例子?(volley)
  • Activity生命周期?情景:现在在一张act1点了新的act2,周期如何?
  • Act的launchMode,有没有结合项目用过(自己的程序锁和微信的PC端登陆对比,不过我现在又发现,应该大约估计可能是动态加载的一个缺陷,如果有找到相关信息,请务必跟我说。具体问题就是,当在PC端登录时,Android终端的微信会跳出,即使wechat的task不是在fore,当按下确认,返回的是wechat,而不是自己先前的app)
  • View的绘制原理,有没有用canvas自己画过ui?
  • 以后想做Android什么方向?(中间件 SDK)
  • 怎么看待前端和后端?
  • 如果学前端会如何学?
  • 优缺点?兴趣?
  • 想不想来杭州?
  • 评价一下我?往技术栈加什么?
三面HR:
  • 为什么想来网易?
  • 有投其他公司吗?
  • 网易最吸引你的是什么?
  • 想来杭州吗?
  • 评价一下我?
进大厂的诀窍

经过这几年的“摸爬滚打”,我发现进大厂确实有一些诀窍,对于和我一样背景一般的同学,只要你抓住了诀窍,进大厂不是梦。

1)一定要提前准备,至少准备个一个月,网上的面试题多看看,对于那些高频题目,带着理解去学习,实在不能理解的就背下来,大家高考的时候不都是背过来的。

2)大厂通常有很多部门,每个部门的hc数和招人标准都不一样,即便是同个部门,如果hr不同,标准肯定也不一样,重复投简历可以增大我们拿到面试机会的概率。同理,重复面试不同的部门,也可以增大我们进大厂的概率。

3)大厂经常会布局新业务,新业务需要快速启动入场,hc通常会有很多,因此招人的标准会稍微降低,这个时候是个绝佳的机会。我当时进的就是个新的业务部门。

android面试必过(如何不浪费又一年的求职黄金期)(3)

面试系统复习路线

有时候,选择比努力更加重要,机遇比奋斗更加重要。但是,机会只留给有准备的人。我们只有时刻准备着,才能在机会到来的时候,去抓住它。

这里给大家分享一下我的面试复习路线,有需要的朋友可以参考一下:

1、看视频进行系统学习

前几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

2、进行系统梳理知识,提升储备

客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

系统学习方向:

  • 架构师筑基必备技能:深入Java泛型 注解深入浅出 并发编程 数据传输与序列化 Java虚拟机原理 反射与类加载 动态代理 高效IO
  • Android高级UI与FrameWork源码:高级UI晋升 Framework内核解析 Android组件内核 数据持久化
  • 360°全方面性能调优:设计思想与代码质量优化 程序性能优化 开发效率优化
  • 解读开源框架设计思想:热修复设计 插件化框架解读 组件化框架设计 图片加载框架 网络访问框架设计 RXJava响应式编程框架设计 IOC架构设计 Android架构组件Jetpack
  • NDK模块开发:NDK基础知识体系 底层图片处理 音视频开发
  • 微信小程序:小程序介绍 UI开发 API操作 微信对接
  • Hybrid 开发与Flutter:Html5项目实战 Flutter进阶

android面试必过(如何不浪费又一年的求职黄金期)(4)

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

3、读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

android面试必过(如何不浪费又一年的求职黄金期)(5)

4、面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

android面试必过(如何不浪费又一年的求职黄金期)(6)

以上内容均免费分享给大家,需要完整版的朋友,直接转发 点赞 私信回复【资料】一键领取!!!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页