Android面试之百题经典——含Java、数据结构与算法、Android三方面的面试题

Android面试涉及到的知识点相对较多,总结下来,大致分为以下几方面:

Java相关:(答案地址)


1、线程中sleep和wait的区别
 
2、Thread中的start()和run()方法有什么区别
 
3、关键字final和static是怎么使用的
 
4、String,StringBuffer,StringBuilder区别
 
5、Java中重载和重写的区别

6、equals跟==的区别

7、抽象类跟接口的区别

8、抽象类能否实例化,为什么

9、Java中的锁
 
10、Http https区别,https的实现原理
 
11、Http位于TCP/IP模型中的第几层?为什么说Http是可靠的数据传输协议?
 
12、HTTP链接的特点
 
13、TCP和UDP的区别
 
14、Socket建立网络连接的步骤
 
15、Tcp/IP三次握手,四次挥手

16、java注解,反射,泛型的理解与作用

17、java线程,场景实现,多个线程如何同时请求,返回的结果如何等待所有线程数据完成后合成一个数据线程种类

18、JAVA GC原理

19、volatile的作用和原理

20、ReentrantLock原理

21、Java为什么要推出HashMap,它是如何解决hash冲突的

22、ArrayMap跟SparseArray在HashMap上面的改进

23、java虚拟机和Dalvik虚拟机的区别 

24、设计模式、手写单例

(Java相关答案地址)

 

数据结构与算法相关:

数据结构:

点击查看

Android面试之百题经典——含Java、数据结构与算法、Android三方面的面试题_第1张图片

算法:

算法部分要注意平时理解和积累,至少要会手写一种排序算法和一种查找算法,其它的算法原理最好理解

点击查看

Android面试之百题经典——含Java、数据结构与算法、Android三方面的面试题_第2张图片

1、怎么理解数据结构?

2、什么是斐波那契数列?

3、迭代和递归的特点,并比较优缺点

4、了解哪些查找算法,时间复杂度都是多少?

5、了解哪些排序算法,并比较一下,以及适用场景

6、快排的基本思路是什么?最差的时间复杂度是多少?如何优化?

7、AVL树插入或删除一个节点的过程是怎样的?

8、什么是红黑树?

9、100盏灯问题

10、老鼠和毒药问题,加个条件,必须要求第二天出结果

11、海量数据问题

12、(手写算法)二分查找

13、(手写算法)反转链表

14、(手写算法)用两个栈实现队列

15、(手写算法)多线程轮流打印问题

16、(手写算法)如何判断一个链有环/两条链交叉

17、(手写算法)快速从一组无序数中找到第k大的数/前k个大的数

18、(手写算法)最长(不)重复子串

 

Android相关:(答案地址)

1、Activity生命周期

2、Activity的启动模式

3、App及Activity的启动过程

4、Broadcast分类,使用、区别

5、对服务的理解,如何杀死一个服务。服务的生命周期(start与bind)

6、View的绘制流程

7、事件分发

8、Handler的原理

9、Android动画种类、区别

10、Fragment与Fragment、Activity通信的方式

11、保存Activity状态

12、Activity,Window跟View之间的关系

13、ViewHolder有什么用

14、Intentservice有什么用

15、有哪几种创建线程的方式,优缺点

16、Android中跨进程通讯的几种方式

17、进程和线程的区别,如何给四大组件指定多进程

18、同步与异步

19、Android UI适配

20、bitmap的三级缓存思想与如何优化bitmap

21、SurfaceView 与View的区别

22、Bundle传递数据为什么需要序列化

23、Android OOM及ANR的产生原因及处理

24、app优化:性能优化、内存优化、启动优化、图片优化、布局优化、响应优化、电量优化、网络优化、安装包优化

25、讲解一下Context

26、Android与H5的交互

27、混合开发

28、RxJava

29、MVP,MVC,MVVM

30、session与cookie的区别

31、如何取消一个网络请求

32、如何实现一个推送,极光推送原理

33、如何进行单元测试

34、进程的优先级、进程保活(不死进程)

35、JNI/NDK基本使用,java如何调用C语言的方法

36、经典第三方框架原理

37、AIDL理解

38、Binder机制原理

39、ClassLoader

40、静态代理跟动态代理

41、AMS,WMS,PMS

42、组件化原理,模块化机制

43、热更新与插件化,它们的实现核心原理是什么,它们的区别,如何进行dex替换

44、Hook以及插桩技术

45、逆向技术

46、代码管理工具,为什么会产生代码冲突,该如何解决

(Android相关答案地址)

你可能感兴趣的:(安卓开发)