android 面试题

基础题 

1.     ViewViewGroup的关系

2.     & &&的区别

3.     invalidatepostInvalidate的异同

4.     写出三种常用layout布局并进行解释

5.     什么是dpi,ps,sp?适配是如何做的,为什么?

6.     ActivityServiceBroadCast Receiver的生命周期

7.     广播创建方式有几种?有什么区别?

8.     写出几种serviceActivity的交互方式

9.     Intent Flag

10.   静态成员类、非静态成员类有什么区别?什么是匿名内部类?

11.   Handler机制的原理,内部是如何实现的,消息队列的实现机制?

12.   APK之间互相传递数据

13.   简述Android的启动过程

14.   如何加载ndk库?如何在jni中注册native函数,有几种注册方法?

15.   如何收集软件崩溃信息?

16.   简述软件编译流程和发布流程

17.   是否编译过android源码和linux内核源码

18.   什么是状态机?项目中什么时候用到状态机,举例说明。

19.   UI线程和非UI线程的交互方式,写出几种各自的耗时。

20.   线程同步(生产者消费者)

21.   写出两种单例模式

22.   http怎么加入超时和代理

23.   xmpp协议的理解

24.   view的绘制过程,讲讲draw/onDrawdrawChild这个可以口述。

25.   简述Observer设计模式,并画出Observer模式的典型结构类图

26. 动画的机制及其底层实现

27.  进程与线程之间的联系与区别

28.  谈谈对设计模式的认识与理解,简单介绍一下你所知道的设计模式

29.  Java多线程,对stop()方法的认识,如何安全的终止一个线程

30.  谈谈你对面向对象编程中继承的认识

31.  wait sleep的区别

32.  Java实现一个Singleton.

33.   什么是ANR,如何定位和避免? 

33.    自定义控件相关

34.     缓存实现

35.    下拉刷新和分页加载的实现机制

36.    60W长度为32的字符串一次性读入内存中,大约占用多少内存空间?

37.    HashSet和HashTable的区别

38.   Activity和Task的启动模式有哪些? 每种含义是什么?

39.   SQLite支持事务吗? 添加删除如何提高性能?

40.   程序之间亲和性的理解

-----------------------------------------------------------------华丽的分隔线-----------------------------------------------------------------
 
算法题
 

1.       判断两个String的交集比如 A = "Marginle"B = Valaienie",交集为aie,写个算法。

2.       求一个数组的最大连续子序列和,比如:-10,3,5,2-3,6,7最笨的方法就是穷举法,用三层for循环

3.       求一个数组中出现次数最多且值最大的数

4.       100盏灯,全部关闭,第一人全部打开(亮),第二个人隔一个按开关,第三个人隔2个按开关,以此类推,第100人路过时有几盏灯亮着?

5.       二分查找法

6.       写一个归并排序数组

7.       一个有N个元素的一维数组(A[0],A[1], ..., A[n-1]),设计一个算法求解该数组最大子数组。(要求时间复杂度是O(n)

8.       用Java代码实现判断一个字符串中是否包含另一个字符串,不要用jdkStringindexOf方法

9.       用最有效率的方法算出2乘以8等于几?

10.   有一个整数数组,有负数和整数,用一个方法把正负数分开,要求空间复杂度是O(1),时间复杂度是:O(N)

11.   有一个数列,奇数个,其中有3个是单个的,其它都是成对的,怎么找出其中任意一个单个的数(小米一面)

12.   在一个数组中,找出出现次数最多且数值最大的一个数并输出

13.   用最快的方式将两个数组合并到一个数组中?

14.   有101个数,为[1,100]之间的数,其中一个数是重复的,如何寻找这个重复的数,其时间复杂度和空间复杂度是多少?

 

 

-----------------------------------------------------------------华丽的分隔线-----------------------------------------------------------------

非技术问题
 
1.简单介绍一下你自己。
2.对自己做个评价,优点、缺点。
3.自己做过的项目,详细介绍一下。
4.实习经历,在实习过程中遇到哪些问题,如何解决的?
5.你对公司有什么问题要问吗(对公司有什么要了解的)?

你可能感兴趣的:(android 面试题)