*版权声明:本文为博主原创文章,未经博主允许不得转载。
楼主13毕业,一直在六朝古都。学渣一枚,代码一般。从学习资源匮乏年代走到现在,感慨很多~
见识了很多拥抱开源,乐于分享的大神、发自内心的佩服你们,感谢你们。
在现东家4年了,成长了很多。生于忧患死于安乐,最近总感觉要失业了~决定拿起锄头试水Android市场(原来写Java)。
都说互联网烧钱的时代已经过去了,剩下的都是某某系了。岗位竞争变成都只招专家了,楼主亲测了一把,面试了几家公司—结论:没有核心竞争力,offer不容易。好点的去不了,一般的不想去~
总结了遇到的面试题。网上可能也有,但实战细节汇总一下:
1.APP体系图谱- 2.APP优化图谱-
前言:
基本都来源Android上面2个图谱。专注技术的,可以定个学习计划,深入浅出。
1.F4基础-Activity:
(1.1)Activity的4种启动模式,区别,回调
(1.2)Activity代码设置启动模式,
(1.3)Activity几种退出方式,
(1.4)Activity是否可以配置独立进程,是否可以修改进程名,
(1.5)两个Activity之间跳转时必然会执行的是哪几个方法?
(1.6)保存Activity状态
2.F4基础-Service:
(2.1)Service与IntentService的区别与使用场景,
(2.2)Service两种启动|关闭方式,
(2.3)Activity与Service 通信方式,
(2.4)Service默认运行的线程,是否可以配置隔离进程,是否可以修改进程名,
3.F4基础-Broadcast:
(3.1)Broadcast几种类型,
(3.2)Broadcast拦截,
(3.3)Broadcast运行的线程,
(3.4)Broadcast动态和静态的区别,
(3.5)Broadcast动态和静态的优先级、为什么,
4.View相关:
(4.1)view事件传递分发机制,
(4.2)view绘制过程,
(4.3)view过渡渲染优化,
(4.4)LinearLayout和RelativeLayout的绘制区别,性能差异对比,
5.Animation相关:
(5.1)动画的分类,
(5.2)属性动画使用,自定义插值器和估值器,举例说明,
6.网络通信:
(6.2)Tcp和Udp的区别,
(6.3)socket是什么?
(6.4)简述3次握手和4次挥手,
7.通信相关:
(7.1)为什么需要 Handler?Handler 原理
(7.2)进程间通信AIDL,
(7.3)广播,
同上
(7.4)Messenger
8.进程|线程相关:
(8.1)线程和进程在操作系统是什么,
进程:操作系统分配的独立内存空间,执行一系列CPU指令集。
线程:是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。
(8.2)sleep()和wait()的区别,
(8.3)线程同步、安全方式,
(8.4)线程池理解,
(8.4)JAVA 锁有几种,
9.三级缓存:
(9.1)内存缓存\本地缓存\网络缓存
(9.2)LRUCache,用来做什么?原理是什么?
10.设计模式:
(10.1)单例,工厂,观察者,代理等
(10.2)Android源码用到了哪些设计模式
(10.2)MVP框架、 MVVM框架
11.性能优化:
(11.1)ANR产生的原因是什么?
(11.2)内存泄露和OOM的分别是什么,有什么区别?
12.其他:
(12.1)讲解一下Context
(12.2)ThreadLocal原理,实现及如何保证Local属性
(12.3)JNI
(12.4)Opengl\渲染管线(初学太好理解)
(12.5)多媒体播放、解码
(12.6)JVM、DVM(Dalvik VM)和ART虚拟机对比
(12.7)JDK1.8新特性?
13.JAVA基础:
(13.1)集合种类
(13.2)String|StringBuffer|StringBuilder区别
(13.3)几种内部类的实现方式,优化,内存泄露风险
(13.4)抽象类和接口区别
(13.5)java反射理解
(13.6)java注解理解
(13.6)java依赖注入理解
14.开源框架:
很多,比如Rx全家桶,写自己用过。没用过的,就说大概了解~
15.常见算法(了解一下):
(15.1)数据结构部分
栈 Stack
队列 Queue
链表 Linked List
数组 Array
哈希表 Hash Table
二叉树 Binary Tree
堆 Heap
并查集 Union Find
字典树 Trie
(15.2)算法部分
快速排序算法
最排序算法
归并排序
二分查找算法
BFPRT(线性查找算法)
DFS(深度优化算法)
BFS(过度优化搜索)
Dijkstra算法
动态规划算法
结语
1.面试不要迟到,不要放鸽子,即使有特殊情况,也要合理沟通。最起码的尊重,即是对自己也是对他人。
2.面试前,问清HR是否需要带什么(简历,笔等)
3.面试内容没法固化,每家问的都不一样,随机性很强,但基础的容易忽略的知识,往往占一半。
4.面试稍微准备个几天,做个复习。一定要夯实基础,注意细节,专注技术,强化业务。
希望大家都能获得上帝的眷顾,都获得心水的offer,谢谢。