面试

1、责任链模式

2、Bulid模式

3、Retrofit源码

(1)使用责任链模式实现

(2)Map使用

4、RecycleView源码

5、Netty框架

6、Thread和Runnable的区别

Runnable相当于任务,Thread相当于执行任务的过程。

7、线程池ExecutorService,锁机制

8、Android性能分析工具Systrace和TraceView的使用

9、HTTP通信

10、开发是使用什么工具,怎样调试程序,和解决bug的。自己把日常的做法讲了一遍。包括各种断点的使用方法。内存泄漏的检测方法。内存抖动如果查找到原因和如何使用TraceView来进行性能调优的。

11、掌握自定义LayoutManager

12、长连接使用Alarm Manager定时30秒唤醒一次,使用wake lock锁发送心跳,发送完毕释放锁。

13、AIDL的使用

14、startActivity的原理

15、启动一个App的原理

16、App反编译加壳

17、UTF-8编码

18、View的事件传递机制

Java基础知识点

基本类型和引用类型是什么?每种基本类型都占多少位多少字节?String是基本类型还是引用类型?

Java什么时候是值传递什么时候是引用传递?

String相关的。String常量池,StringBuffer,StringBuilder,运算符“+”与“+=”重载。String不可变的理解。String的intern方法不同版本的实现原理的区别。

什么是自动拆装包?

Socket传输粘包和拆包,滑动窗口

Java的作用域修饰词有哪些?他们的作用是什么?(不要忘记default,default可以理解成包级别的作用域修饰符)

Java的容器框架结构。他们对应的数据结构都是什么?他们有什么优缺点?哪些是RandomAccess的(这个和遍历的时候是使用迭代器的方式还是i的方式有很大关系)。(有时间最好把HashMap,ArrayList,LinkedList,HashTable,HashSet,搞安卓的同学最好把LinkedHashMap的源码也看了,因为这个和我们常用的一个内存缓存LruCache有很大关系。)

Java容器相关的辅助类Arrays和Collections了解一下。

Java虚拟机的内存模型。堆,方法区,方法栈,本地方法栈,程序计数器都是什么?这些不同虚拟机的具体实现是不同的,我们经常讨论的是HotSpot中的实现。堆的什么新生代老生代?Eden?Survivor的Form和To?永久代。

Java的GC机制?内存回收策略有哪些?HotSpot中具体策略是什么?两次回收是怎么回事(和finilize有关)?如果有时间最好再去了解哪些是GC Root?

final,finally和finalize都是干什么的?带有finally又有return的方法中,finally中的代码是什么时候执行的,finally中改变了return的值,什么情况下会起作用什么情况下不会起作用?

Java 4种引用,强软弱虚引用都是什么?

Java怎样开启一个线程。线程池是干什么的?有哪些常用的线程池?优缺点是什么?

Java中同步的方式有哪些?类锁和对象锁。共享锁和排斥锁。wait,notify,notifyAll。await和signal,signalAll。wait是在if中使用还是循环中使用?

volidate关键字的作用?(提供可见性和顺序性,自己去找相关文章理解,不要忘记顺序性!!)

面向对象的三大特征。Java多态的实现原理?动态绑定的理解?

内部类,静态内部类,匿名内部类,局部内部类。.this和.new。

Java Object中的基本方法有哪些?

Java clone的使用。

Java hashCode和equal方法。

equal方法和“==”

Java的Class对象。

Java反射机制

Java的静态代理和动态代理

Java注解相关的。(这个其实你自己不提一般不会有面试官问。但现在很多框架都是用的注解,所以最后也要了解一下比较好。)注解的生存期。注解的作用有哪些?(如果你用过ButterKnife这种注解框架,那么最好知道它是什么时候处理注解的,怎样处理的具体代码,有兴趣和时间可以自己研究。)

Java泛型。编译期擦除技术。擦除引发的问题。

Java创建一个线程安全的单例。或者其他比较常见的设计模式。(这个一般他会问你你知道什么,然后让你写什么,或者说这个模式用来解决什么问题。)

Java枚举的理解。

Java操作文件的基本API,RandomAccessFile。NIO。

Java访问网络的基本API。Socket,DatagramSocket,URLConnection。

Java异常有几种?什么是运行时异常,有什么特点?

Android基础知识

Activity的生命周期。启动模式。

Service的生命周期,和两种启动方式。

Fragemnt的生命周期和使用场景。(使用场景结合自己用过的讲就好了,不过一般有:实现手机平板适配,Fragment+FragmentAdapter+ViewPager实现分页滑动效果,实现快速的页面切换,和封装相同的UI逻辑提高代码重用性)Fragment要注意的问题。(主要Fragment嵌套出现的问题)

BoardCastReciever的两种注册方法。

ContentProvider的基本使用方法和作用。ContentValue的使用方法,他和HashMap的区别是什么?

SharedPreference三种获得方法和区别,commit和apply的区别。

SQLite数据库的基本操作API(最后也要会写SQL语句,不过之后实际应用的时候都用封装好的CRUD方法,不过有的时候面试官会考。尤其注意创建表,数据库升级的时候更新升级表的SQL语句的写法,这个是要我们写原生SQL语句的,不过之后工作中使用一些数据库的框架,这些也不用了。不过应付面试,注意准备一下吧。)

Android基本网络库OkHttp的使用方法和优缺点。(优缺点很重要)

Android执行异步有哪些方法?线程间通讯的方式?

AnycTask的优缺点?串行or并行?内部线程池是怎样的?(有时间的话可以看看AsyncTask的源码,还是挺经典的,可以学习到不少东西的。不同版本,串行和并行有变化,最新的是既可以并行也可以串行。)

常用的布局有哪些?

View的绘制流程?

View,SurfaceView,GLSurfaceView有什么区别?

ListView的优化。(这个问题我真是不明白为什么现在还在问。不是都有RecyclerView了吗?不过既然经常问那就准备一下,过不项目中已经完全用RecyclerView代替了。)

RecyclerView与ListView的区别。RecyclerView的优缺点。(这个如果你主动提到了RecyclerView,面试官很有可能跟进这样问。再次强调:尤其注意缺点,这个是我们不太容易注意的。)

WebView的基本使用方法。WebViewClient和WebChromeClient。

Android和H5通信。(基本上就是JS和Android原生互调)

Intent的作用。(PenddingIntent不知道有没有必要了解,一般没人问吧。自己看着办吧。)

Android的屏幕适配方法有哪些?(延伸的比如多语言,RTL布局。不过这两个也基本没有人问。)

XML加载的几种方式,各自的原理。都有什么优缺点?

Android中动画的分类,各自的优缺点。(基本上讲了帧动画,Tween动画,属性动画就OK了,至于Transition Framework可讲可不讲。)

Android中图片加载和缓存怎么做?(一般原生的话加载使用BitmapFactory,缓存使用LruCache就可以了。LruCache的原理再讲讲基本差不多了。如果你使用过这方面的第三方库,自己翻过源码的话再讲,没有的话千万不要讲。因为你只要提了第三方库,面试官紧跟着的就是为什么使用这个库,这个库的优缺点是什么?他的原理是什么?所以如果你看过源码,大胆的讲,让面试官知道你知识的深度。)

JSON相关的。(这个基本上问问你们网络传输用什么格式,然后你说用Json,然后就是怎么解析呀巴拉巴拉巴拉……)

Android中方法数65535问题的原因和解决办法。

Android中的消息传递机制。(Message,Handler,MessageQueue,Looper那个玩意)

有哪些容易造成内存泄漏的原因?

MVC,MVP。(MVVM一般不会问,以及相关的DataBinding呀随便了解一下就OK,不要把重点放在这个上面)

什么是ANR?什么原因?怎么解决?

什么是Force close?……

什么是OOM?……

下面的实习生一般并不会遇到:

Android的Touch事件分发过程(这个直接找网上的文章看看就好了,多的不得了)

Android应用从Launcher的启动过程

Android中进程保活的方法

Android中的IPC Binder是怎么回事?出于什么考虑?

Android中的Zygote是什么鬼?出于什么考虑?

Android中的DVM和JVM有什么区别?又加入的Android Runtime是出于什么考虑?有什么优势?

Android中各个版本的功能特性?

Android中如何检测内存泄漏?

进行过哪些性能优化(这个就要据自己实际的例子)

AIDL的使用。

NDK开发。(这个我也不熟……囧!)

Android中用过哪些第三方库?他们的工作原理是什么?优缺点?(这些要看个人了。自己没事可以去翻翻自己用的第三方库的源码。可以学习到不少东西。)

Android的插件化技术和热修复技术。(这个好像也不怎么会问,总归不是主流,了解一下就好,一旦说到可以扯扯淡)

Android混淆

Android反编译

计算机网络

其实基本上能问到的也就1和2。其实这里我能记住的已经不多了。

TCP

UDP

OSI 7层模型

TCP/IP 4层模型

Http和一些错误码代表的含义。

还有一个SPDY的协议可以了解一下,Http的增强。(因为OkHttp里用这个协议,到时候扯扯淡说不定能加分。)

线性表

线性表的相关概念,对于其中的链表,栈,队列,后面展开介绍。

线性表 及Java实现 顺序表、链表、栈、队列

栈和队

1.栈的创建

2.队列的创建

3.两个栈实现一个队列

4.两个队列实现一个栈

5.设计含最小函数min()的栈,要求min、push、pop、的时间复杂度都是O(1)

6.判断栈的push和pop序列是否一致

栈和队列的面试题Java实现

链表

1、单链表的创建和遍历

2、求单链表中节点的个数

3、查找单链表中的倒数第k个结点(剑指offer,题15)

4、查找单链表中的中间结点

5、合并两个有序的单链表,合并之后的链表依然有序【出现频率高】(剑指offer,题17)

6、单链表的反转【出现频率最高】(剑指offer,题16)

7、从尾到头打印单链表(剑指offer,题5)

8、判断单链表是否有环

9、取出有环链表中,环的长度

10、单链表中,取出环的起始点(剑指offer,题56)。本题需利用上面的第8题和第9题。

11、判断两个单链表相交的第一个交点(剑指offer,题37)

链表面试题Java实现

上个文章中对链表反转的递归方法没给出,这篇有:Java反转单链表实战

排序

1.冒泡排序

2.插入排序

3.选择排序

4.希尔排序

5.快速排序

6.归并排序

7.堆排序

排序算法的比较与java实现

1.二叉查找树

二叉查找树(三)之 Java的实现

2.树的深度遍历与广度遍历

树的深度优先遍历和广度优先遍历的原理和java实现代码

3.平衡树

AVL树(三)之 Java的实现

4.红黑树

红黑树原理解析以及Java实现

5.哈夫曼树

哈夫曼树(三)之 Java详解

6.并查集

数据结构--并查集的原理及实现

7.B树系列

B-树,B+树,B*树

1.图的基础概念

图的理论基础

2.深度遍历与广度遍历

图的遍历之 深度优先搜索和广度优先搜索

3.单源最短路径

Dijkstra算法(三)之 Java详解

4.多源最短路径

Floyd算法(三)之 Java详解

5.最小生成树

Prim算法(三)之 Java详解

Kruskal算法(三)之 Java详解

6.拓扑排序

拓扑排序(三)之 Java详解

散列查找

1.散列表的概念

散列表

2.散列表的一些算法应用

从头到尾解析Hash表算法

散列表可以和Java中集合HashMap等对照学习。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容