一年半android经验面经

作者: New_X | 来源:发表于2018-03-20 10:39 被阅读1741次

面了几家,把我记得的,印象深刻的问题记录下,有很多重复问的,也有的有笔试:

Part1:

1.fragment的生命周期

太迷了,把onResume和onStop写反了,面试官说看了心里一凉...

2.事件分发机制,以及涉及到的设计模式

3.onMeasure的测量模式与特点

4.线程间通信和进程间通信

5.ArrayList删除元素

-> fail-fast机制,用Iterator;或者倒序删除

6.写出你认为最优的懒汉式单例模式

-> 写的静态内部类,被问了下为什么能保证用到时再初始化?答:虚拟机的类加载机制,再被问了下为什么用双加锁,以及volatile的作用,最后跟我说了下其实as最低都支持1.6,所以大部分开源都是synchronized、volatile,我说确实如此,但是synchronized是悲观锁,效率有一定影响吧。

7.activity意外退出时信息的储存与恢复,onCreate正常进入时的判断。

8.谈谈性能优化

9.JS的交互理解吗?平时工作用的多吗,项目中是怎么与Web交互的?

10.MVC -> MVP -> MVVM 这样变化的原因,MVP的不足,MVVM为什么代替了MVP

11.MVC的情况下怎么把Activity的C和V抽离

可以参照MVVM的方法把MVC的Controller拆分,不需要双向绑定,也能实现模块化抽离,架构模式不是死的,可以根据需求变化,他说我应该了解到这层度上,但是MVVM没去了解过GG

http://blog.csdn.net/baidu_15060875/article/details/54882790

12.各个网络框架之间的差异和优缺点,网络框架代替进化的原因

http://blog.csdn.net/small_and_smallworld/article/details/72811227

13.图片缓存框架的差异和优缺点,有没有比Glide更好的图片加载框架?

-> 答了下Volley、Glide,说了下Glide绑定生命周期的巧妙之处。Volley问了下缓存的方式和用到的数据结构。了解了下想我回答Fresco(但是我没用过,虽然很早以前就看过)

14.项目框架里有没有Base类,BaseActivity和BaseFragment这种封装导致的问题,以及解决方法 -> 代理模式

15.框架里是怎样实现MVC的,看着框架的功能,发现View就像Activity,所以归类到MVC了,但是其实VC都是写在一起的,没有分离,所以其实不是MVC,毕竟android不是典型MVC

16.Reftofit用过没有,注解实现的好处? -> 扯了下AOP的好处

17.项目中的的界面既然是基于View的,有没有动画的处理?

18.为什么不推荐软引用,软引用在dvm上的垃圾回收机制和jvm上一样吗?

19.LRUCache的删除条件,LRU是什么意思 -> 内存不足&最少使用

20.启动页缓存设计 白屏问题(后来搜博客发现原来问点是冷热启动)

http://m.zhimengzhe.com/Androidkaifa/225726.html

21.网络图片怎么加载?Glide如何确定图片加载完毕

22.项目框架中对多View的支持? -> 说不同的View有不同的类型比如有menu类型

23.Http的request和response的协议组成

24.RecyclerView和ListView相比有哪些好处,为什么ListView被RecyclerView代替?

Part2(具体记不太清):

1.Service的源码

2.Handler的实现,Looper怎么终止。

3.项目是MVC,那根据自己负责的项目讲下Model、View、Controller层

4.问了下昼夜模式、多语种、屏幕适配的问题,追问了下,如果要关闭昼夜模式功能怎么办?很多类的话,一个个去关吗?

5.有没有接触过JNI和NDK?

6.ListView的错位问题原因以及如何处理?

7.如何设计一个抽奖系统,比如满200抽20,满500抽50

    答:应该用策略模式代替if...else...(但是忘记策略模式的具体好处了),顺便说要点在于拓展新,比如以后可能还要加个累计2000抽奖的功能

    追问:那如何实现累计?

    答:应该是数据库设计的问题,肯定要记录日期时间这些字段

    提示应该用什么数据库实现这种功能

    答:内存数据库?

    最后解释说key-value数据库就行了(其实数据库一点不懂,以前接触过后端听过内存数据库、redis这些)

Part3:

1.值传递和引用传递

2.Activity的生命周期,最好结合应用启动说一下

-> 就是启动App的流程,Launcher、AMS、ActivityThread这些

3.写出一个查找算法

4.MessageQueue、Looper、Handler的关系,MessageQueue的onNext是死循环为什么不会卡?

5.强弱软虚引用的区别

6.插件化的原理以及常见的插件化的库

7.项目中涉及到的知识点

8.gradle语法熟吗

9.代码和项目上对封装架构的体现,说了下路由、封装、面向接口开发少用继承等

10.平时学习提高的方式,以及看过的书

11.ArrayList和LinkedList的区别,以及插入查找的时间复杂度

12.如果返回页面需要刷新,应该放在Activity的哪个生命周期比较合适,onStart和onResume的区别,如果第一次不想执行,放在哪里

13.二叉搜索树的实现、数据结构中哈希表的实现:算法数据结构确实不行了,没准备不好答

14.介绍下观察者模式、访问模式

15.项目中内存优化的实例

16.singleTask和singleTop的区别,以前singleTask的实现方式

17.Handler导致的内存泄漏举例,知道会,没去注意,但知道其他的,就答了其他的

面试总结:

虽然很多都是一篇博客的问题,但是作为程序员应该坚持学习新技术。有个面试官说我学习深度和基础都不错,就是广度不够,在工作外的自己学习不够。我说这可能想法不一样吧,最近看的都是Java、Android基础和设计模式,我觉得夯实基础对学其他也有好处。不过确实多学习开源对拓展思路很有好处,刷个博客,写个demo也要不了多久时间,最近油了油了,要加紧学习。

相关文章

  • 一年半android经验面经

    面了几家,把我记得的,印象深刻的问题记录下,有很多重复问的,也有的有笔试: Part1: 1.fragment的生...

  • Android面经| 问题归纳

    面经专题系列:Android面经| 问题归纳Android面经| 回顾展望Android面经| 算法题解 @[to...

  • 面试经历

    Android 面试指南 牛客网面经区 一年Android工作经验,今日头条 阿里 百度 网易 美团 小米 快手面...

  • Android面经分享(一年经验)

    干Andorid这份工作前前后后也一年的时间了,最近开始找工作,出去面试才发现自己水平的不足,直接被血虐,过去的一...

  • 三年android经验面经

    Part1 项目中的亮点和难点--> 印象比较深的是启动优化和埋点 埋点实现,如何去除多余的业务埋点,有没有了解过...

  • 两年android经验面经

    去年跳槽不成功,在同花顺又呆了一年。一年来收获蛮大,就公司项目来说,已经是非常熟悉了,很多入职不久的,都是不断抱怨...

  • Android面经

    这三天以来,我前后面了四家公司,本人是2018届应届毕业生,以下只是一些普通公司的面经,特此记下。 公司一 1.A...

  • 【面经】项目经验?

    1、一些loss怎么设计? 2、网络结构怎忙设计? 3、优化方法怎么理解? 4、训练方式? 5、一些框架设计理念?...

  • 互联网产品经理面试问题汇总(18问)

    写在前面: 以下内容是根据自己看了很多面试经验之后的总结,包括百度面经,腾讯面经,新浪面经,360面经,搜狐面经,...

  • 头条 Android 面经

    个人情况 我在开学后内推了头条西瓜视频的 Android 开发实习生,经历了三轮技术面试和一轮 HR 面试。全部流...

网友评论

  • 才兄说:有一定基础后,配合代码模板,或者源码库,开发效率简直飞起来。可以参考这篇文章一起做个工具库
  • 绳_:emmmmmm 弄得我都不想在三线城市写android了
  • nodzhang:感觉当初校招的时候这些问题都在问,现在工作一年了,自己还是有些没有搞明白,还需努力啊
  • 堇色素颜_:感谢分享😄
  • Wan_bfc4:受教了
  • 孤傲的南方人:楼主 我现在公司做android车载的,公司的项目都很简单,都是些单纯实现业务的小项目 做了半年 不知道接下来怎么走:sob:
    _Once1:兄弟 我现在也是做车载,感觉待下去没什么前途,通过项目技术也没啥大收获。。。不知道你以后怎么打算?可以沟通一下:joy:
    New_X:@孤傲的南方人 自己学,我现在做金融的,也没什么挑战性,想跳槽找不到好机会,年限是个问题:sob:
  • 布谷鸟也会编程:最近也想跳槽,现在公司给的有点少 复习复习 看看面试题,再投简历 同杭州
    cyixlq:@布谷鸟也会编程 同杭州,公司技术好落后,想跳槽,刚出来的大三实习生
  • 那些年的任何事99:retrofit
    New_X:很早前就听过,最近用了下,公司项目纯Java,一直没机会接触,得自己研究下...
  • 郭家大少爷:程序员不学习是不行的,还好我工资现在12.5面试的时候也没问我那么多问题,现在写的是kotlin项目,刚接手时也是啥也不会
    New_X:学习机会也很重要...自己学着的工程和工作的项目心态确实不同的...毕竟工作要负责任:joy:
  • hey君临天下:给你开多少k?
    New_X:@李铁男 12
  • 一铁木真一:我也是一年半,现在遇到一个问题,是广度发展学习web js相关,还是深度发展学jni ndk C。希望以后有机会能够交流交流。
    New_X:我比较喜欢JS...
  • 爱码士平头哥:一年半,这些问题你都能回答上,不错了。
    那些吹泡泡的日子:@HappinessTong 我是无意看到的 老哥:smile:
    爱码士平头哥:@那些吹泡泡的日子 哈哈。你太无聊了,居然跑到评论来找到我。。
    那些吹泡泡的日子:活抓一只福乐汤
  • Cliper:4年深圳12k,感觉自己都迷茫了🙃
    New_X:加油:+1:
  • 你好_ddb0:深圳面了好多家,2年多要12k,最后都没拿下。项目太low了,这点怎么办
    New_X:@郭家大少爷 12还高啊...我同事和我一样去年毕业,去阿里17K...:joy:
    郭家大少爷:@你好_ddb0 两年12现在确实有点高了
    New_X:我现在公司项目对自己提高也不大...自己平时多找时间拓展自己的深度和广度吧。
  • 命若弦_T:面试 15K的工作? 问的安卓绝大部分问题都是 前两年 都问过的了, 一般的安卓不需要写太多sql的,你做java后台 自然就会了,程序员 还真累 总要学新东西
    New_X:我薪资要求12+,杭州。没办法,不学跟不上,混口饭不容易:joy:

本文标题:一年半android经验面经

本文链接:https://www.haomeiwen.com/subject/dmuipxtx.html