Android 面试题,百度,小米,阿里面试题

关注公众号:QXF069java

基础问题相关android

一、接口的意义-百度面试

二、抽象类的意义-百度算法

三、内部类的做用-乐视数据库

四、Java 虚拟机的特性-百度-乐视设计模式

五、哪些状况下的对象会被垃圾回收机制处理掉-美团-小米数组

六、进程和线程的区别-猎豹-美团性能优化

七、java中==和equals和hashCode的区别-乐视网络

八、HashMap的实现原理-美团多线程

九、string-stringbuffer-stringbuilder区别-小米-乐视-百度

十、什么致使线程阻塞-58-美团

十一、多线程同步机制-猎豹

十二、ArrayMap对比HashMap

1三、hashmap和hashtable的区别-乐视-小米-360

1四、容器类之间的区别-乐视-美团

1五、抽象类接口区别-360

Android 方面

1六、如何导入外部数据库?

1七、本地广播和全局广播有什么差异?

1八、intentService做用是什么,AIDL解决了什么问题-小米

1九、Ubuntu编译安卓系统-百度

20、LaunchMode应用场景-百度-小米-乐视

2一、Touch事件传递流程-小米

2二、View绘制流程-百度

2三、多线程-360

2四、Handler,Thread和HandlerThread的差异-小米

2五、线程同步-百度

2六、什么状况致使内存泄漏-美团

2七、ANR定位和修正

2八、什么状况致使oom-乐视-美团

2九、Service与Activity之间通讯的几种方式

30、如何保证service在后台不被Kill

3一、Requestlayout,onlayout,onDraw,DrawChild区别与联系-猎豹

3二、Android动画框架实现原理

3三、Android为每一个应用程序分配的内存大小是多少-美团

3四、优化自定义view百度-乐视-小米

3六、volley-美团-乐视

3七、Glide源码解析

3八、Android设计模式

3九、Android属性动画特性-乐视-小米

40、Activity Window View三者的差异,fragment的特色-360

4一、invalidate和postInvalidate的区别及使用-百度

4二、LinearLayout和RelativeLayout性能对比-百度

4三、View刷新机制-百度-美团

4四、架构设计-搜狐

腾讯公司面试题精选

4五、2000万个整数,找出第五十大的数字?

4六、从网络加载一个10M的图片,说下注意事项

4七、自定义View注意事项

4八、项目中经常使用的设计模式

4九、JVM的理解

阿里面试题精选

50、进程间通讯方式

5一、什么是协程

5二、内存泄露是怎么回事

5三、程序计数器,引到了逻辑地址(虚地址)和物理地址及其映射关系

5四、数组和链表的区别

5五、二叉树的深度优先遍历和广度优先遍历的具体实现

5六、堆的结构

5七、bitmap对象的理解

5八、什么是深拷贝和浅拷

5九、对象锁和类锁是否会互相影响

60、looper架构

6一、自定义控件原理

6二、自定义控件原理

6三、ActivityThread,Ams,Wms的工做原理

6四、Java中final,finally,finalize的区别

6五、一个文件中有100万个整数,由空格分开,在程序中判断用户输入的整数是否在此文件中。说出最优的方法

6六、两个进程同时要求写或者读,能不能实现?如何防止进程的同步?

6七、volatile 的意义?

6八、烧一根不均匀的绳,从头烧到尾总共须要1个小时。如今有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?

6九、手写代码:大整数加法

70、简历上提到使用Butterknife,Butterknife是什么阶段注解?注解的生命周期了解吗?

7一、简历中提到使用Okhttp作网络通信,说一下Okhttp拦截器

7二、Http和Https区别,没有CA证书可使用Https访问吗

7三、TCP在是哪一层的协议,三次握手过程

7四、了解什么加密算法,说一说对称加密和非对称加密

7五、了解JVM吗,说说垃圾回收机制

7六、了解apk的编译过程吗,简单说了一下dex

7七、Java中Collection的经常使用实现类,map的实现类

7八、聊聊Hashmap和Hashtable区别

7九、Hashmap的底层实现方式,如何解决哈希冲突,除了这种解决方式还有没有其余解决方式

80、不少网站像新浪微博网址都有短地址,若是让你实现怎么作

8一、如何判断两个单链表相交

8二、如何使用两个或多个栈模拟队列

8三、智力题:如今有一个抽奖活动,从8点到10点这段时间会有若干个用户参与抽奖,如今有10个获奖名额,但没有足够大的空间保存全部的数据,要求每一个用户等几率中奖,且10点活动截止瞬间开奖。

二面(50分钟)

8四、手写代码:删除单链表倒数第x个结点

8五、手写代码:z已知,在无序数组中找到两个数x和y,使x+y=z(使用哈希表以空间换时间)

8六、有没有看过Handler的源码,当MessageQueue中没有Message会怎么处理

8七、说一下线程与进程,android跨进程通信的方式,本身有没有用过

8八、讲一讲AIDL原理

8九、Service有几种启动方式,有什么区别

90、activity的声明周期和启动模式,举了一个实际场景问点击back以后的跳转

9一、activityA跳转到B过程当中A,B的生命周期函数调用顺序

9二、自定义View的相关知识

经验分享 在以前一家互联网的时候我做为面试官接触过几十个面试者,能左右我是否是经过这我的的,主要因素仍是这我的对技术的热爱程度。由于有这种极客精神,作任何技术上的事情都是时间上的问题,因此面试过程当中要尽量表现出对技术的热爱。

那除了这种因素外,咱们怎么作才能更大几率的进入一线公司呢?

还有一个比较重要的因素就是知识的深度。我认为深度优于广度,广度经过看各类文章都能了解,但一旦碰到实际问题,这时候每每靠的是本身的知识深度。好比,Java程序猿都知道Java是跨平台的,由于会编译成和平台无关的字节码,可是有多少人会知道是怎么编译的?若是不知道虚拟机运行原理,就不可能作出手淘的Atlas容器框架。再好比,不少人知道四大组件职责都是什么,还会些性能优化,可是若是不知道Framework层系统服务原理,就作不出插件化框架。

由于一线公司业务的复杂度也决定了业务的深度,若是没有较好的深度探究能力,是很难胜任的,因此知识的深度也很重要。

极客精神加上某一领域知识的深度能力,就能够达到一线公司标准了。面试中非理性因素也有较大比重,可是这种东西是咱们没办法掌控的,若是由于这种因素失败了,也不必气馁。我认为能力是和回报成正比的,就算此刻没发生,下一刻也会出现,只要掌握了咱们该掌握的能力,总有一天会进入咱们理想的公司。

关注公众号:

相关文章
相关标签/搜索