面试相关面试大全Android开发经验谈

某鹅Android面试

2016-07-26  本文已影响828人  nothingwxq

题外话

最近准备离职,换个环境。发觉java的面试知识,我确实准备不充分,lz研究生期间是做iOS的,进入某厂转入Android。这次正式以Android的开发者进入面试,哎,发觉一大堆坑。其实面试主要进行了如下方面:
1. Android相关知识
2. java基础知识
3. 开发者的基础知识 数据结构与算法、操作系统(这一面没有涉及)等

面试准备:

  由于我简历上还有iOS相关的经验,还写了个熟悉c/c++,于是复习内容如下:
       1. 程序员面试笔试宝典 
       2. 剑指offer
       3. 找的网上java相关的面试题目
       4. 看java源码: 这里准备有些不足,细节上很多答不上来。
        如 ArrayList扩容和缩容,HashMap(jdk 1.8 后这里使用红黑树优化也较难), HashSet等面试前稍微看了下LinkedHashMap源码,其实这里很多面试问题。这里还有一个比较难的源码,红黑树实现的TreeMap,TreeSet
    并发容器(这里没怎么准备): CopyOnWriteArrayList、LinkedBlockingQueue、ArrayBlockingQueue、SynchronousQueue。 以上源码很多是需要分版本的。
    5. 并发多线程的一些操作。
    6. Android源码:只准备了几个项目相关的,如okHttp、Volley、EventBus、Butterknife等还有几个图片库。其实还准备了下装逼的 retrofit+ rxjava但底层很多不是很明白,果断在面试中不提。

java 语法知识 主要集中在集合和多线程

先说一个题外话,恩,还算幸运,居然没有涉及到垃圾回收机制和JVM类加载等。以下是一面电话面试内容。

  1. ArrayList 扩容
  2. ArrayList和LinkedList 区别
  3. ArrayList 删除元素是否有缩容策略,当时猜的是有,因为忘记了对应的源代码
  4. 如果是你,怎么设计ArrayList 删除时,缩容策略
  5. 用过HashMap么? LinkedHashMap 和HashMap区别?
    这个答得不好
  6. LinkedHashMap里面有按照顺序存储数据,如果是你怎么设计?
    LRUChache的基本上就是采用的这个。
  7. volatile关键字含义? 如果每个线程都存有共享数据的副本,是否会浪费空间。 JVM的内存模型实质
  8. 设计一种多线程的数组满足读多写少的情况。会哪些存在的线程并发问题。
    CopyOnWriteArrayList

Android的知识

  1. Activity 的lanchMode 和FLAG标签
  2. Service中 bindSerice和 startService 区别
  3. 事件拦截和传递机制
  4. Textiew怎么添加图片
  5. TextView加载很多文字的时候,加载较慢,如何优化
  6. 强引用,弱引用,软引用的区别等

数据结构

  1. 链表的是否相交 当时提供了几种解法,然后自己给自己挖坑了
  2. 如何判断交点
    当然面试的时候还有些细节部分,主要过了一段时间记不清楚了。以上仅供参考,如有雷同纯属你抄我。
上一篇下一篇

猜你喜欢

热点阅读