我的很多读者都在反馈说,现在一个岗位可以收到的简历数,是前几年的几倍。我们必须承认,僧多粥少就是 AndroID 行业的现状,别说初中级工程师,就是高级工程师也是一抓一大把。企业招人的眼光也越来越高,如果你没点“真东西”,是真的挺难的。
前几天和一位 AndroID 前辈聊天,他说面试中很多工程师,对特别基础的问题都停留在“使用过”或者“听说过”。没有深入到技术细节里,在竞争激烈的市场中就只能被淘汰。
下面这些,是他提到的几个问题,你能快速回答上么?
SoftReference(软引用)在内存不足时会被虚拟机回收,那它会不会导致 OOM?AndroID 的 touch 事件中 CANCEL 事件是如何产生的?哪些场景下会发生 CANCEL 事件?Handler 中的 Looper 无限循环,为什么没有阻塞UI主线程?你在简历中写“精通多线程”,那么:线程中自己的“工作内存”指的是什么? 为什么阿里开发规范中不允许使用 Executors 创建线程池?你一定想说“面试造火箭,工作拧螺丝”。实际上,你的答案反映了你对技术理解的深度,以及解决问题的能力。
听起来很套路,但企业需要的是能对自己提交代码负责、对使用每一个工具负责的「高级/资深 AndroID 开发」。
二.面试流程自我介绍面试官根据你的介绍开始问你对我们公司有什么想了解的么(复活卡,要时回到没有了也就没有了,可以让面试官给自己提一下建议)三.面试题回忆,没有先后顺序1.项目架构,组件化架构(他反而没问插件化)
2. AndroID 事件分发机制(问到源码调用细节)
3.反射怎么调用一个类的私有方法(这里也是问细节,2个方法的区别)
Method method=clazz.getDeclaredMethod(name);//可以调用本类中的所有方法(不包括父类中继承的方法)
Method method=clazz.getmethod(name); //可以调用类中有访问权限的方法(包括父类中继承的方法)
4.怎么监听Activity的生命周期
可能大部分想到的时候自己写个 BaseActivity 就搞定了
其实是在 Application 里面注册一个监听回调的事情
this.registeractivitylifecycleCallbacks(new ActivitylifecycleCallbacks() { @OverrIDe public voID onActivityCreated(Activity activity, Bundle savedInstanceState) {} @OverrIDe public voID onActivityStarted(Activity activity) {} @OverrIDe public voID onActivityResumed(Activity activity) { } @OverrIDe public voID onActivityPaused(Activity activity) { } @OverrIDe public voID onActivityStopped(Activity activity) { } @OverrIDe public voID onActivitySaveInstanceState(Activity activity, Bundle outState) { } @OverrIDe public voID onActivityDestroyed(Activity activity) {} });
@H_404_68@5.RxJava,RxAndroID 是否用过,用过的话估计会问原理
ImageLoader(不用考虑了)PicassoGlIDeFresco
6.图片缓存框架,用过哪个,原理(这一关想过一定要用透一个)7.网络请求框架用过哪个(Okhttp, Retrofit, Volley)
这里他想听到的是 OkGo(基于 Okhttp 封装的一个框架)
8.有个业务里面有20几个嵌套的 if else,从设计模式的角度怎么解决这个问题?
他考的是策略模式+工厂模式
9.HashMap,Hashtable,HashSet什么区别?
四.总结1.这是很有指导意义的一次面试,面试的内容确实比较符合现在对高级AndroID工程师的要求。
2.问的内容比较关注细节,这种要是没有深入了解几乎不知道。
3.面试其实是一个学习成长的过程,找几家公司练练手,然后找到套路之后对症下药。如果你进阶的路上缺乏方向,可以点击我的【Github】加入我们的圈子和安卓开发者们一起学习交流!
以下全部内容都可以在GitHub中获取!AndroID进阶学习全套手册
AndroID对标阿里P7学习视频
BATJ大厂AndroID高频面试题
最后,借用我最喜欢的乔布斯语录,作为本文的结尾:
总结人这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦。
你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。
最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。以上是内存溢出为你收集整理的安卓应用开发书籍!网易云的朋友给我这份339页的Android面经,全套教学资料全部内容,希望文章能够帮你解决安卓应用开发书籍!网易云的朋友给我这份339页的Android面经,全套教学资料所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)