Android经典面试题,也可以提升综合能力

公众号:码农乐园 等级 405 0 0

基础问题相关

1、接口的意义-百度

2、抽象类的意义-百度

3、内部类的作用-乐视

4、Java 虚拟机的特性-百度-乐视

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

6、进程和线程的区别-猎豹-美团

7、java中==和equals和hashCode的区别-乐视

8、HashMap的实现原理-美团

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

10、什么导致线程阻塞-58-美团

11、多线程同步机制-猎豹

12、ArrayMap对比HashMap

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

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

15、抽象类接口区别-360

Android 方面

16、如何导入外部数据库?

17、本地广播和全局广播有什么差别?

18、intentService作用是什么,AIDL解决了什么问题-小米

19、Ubuntu编译安卓系统-百度

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

21、Touch事件传递流程-小米

22、View绘制流程-百度

23、多线程-360

24、Handler,Thread和HandlerThread的差别-小米

25、线程同步-百度

26、什么情况导致内存泄漏-美团

27、ANR定位和修正

28、什么情况导致oom-乐视-美团

29、Service与Activity之间通信的几种方式

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

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

32、Android动画框架实现原理

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

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

36、volley-美团-乐视

37、Glide源码解析

38、Android设计模式

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

40、Activity Window View三者的差别,fragment的特点-360

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

42、LinearLayout和RelativeLayout性能对比-百度

43、View刷新机制-百度-美团

44、架构设计-搜狐

腾讯公司面试题精选

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

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

47、自定义View注意事项

48、项目中常用的设计模式

49、JVM的理解

阿里面试题精选

50、进程间通信方式

51、什么是协程

52、内存泄露是怎么回事

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

54、数组和链表的区别

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

56、堆的结构

57、bitmap对象的理解

58、什么是深拷贝和浅拷

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

60、looper架构

61、自定义控件原理

62、自定义控件原理

63、ActivityThread,Ams,Wms的工作原理

64、Java中final,finally,finalize的区别

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

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

67、volatile 的意义?

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

69、手写代码:大整数加法

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

71、简历中提到使用Okhttp做网络通讯,说一下Okhttp拦截器

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

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

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

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

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

77、Java中Collection的常用实现类,map的实现类

78、聊聊Hashmap和Hashtable区别

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

80、很多网站像新浪微博网址都有短地址,如果让你实现怎么做

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

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

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

二面(50分钟)

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

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

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

87、说一下线程与进程,android跨进程通讯的方式,自己有没有用过

88、讲一讲AIDL原理

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

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

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

92、自定义View的相关知识

经验分享

在乐视的时候我作为面试官接触过几十个面试者,能左右我是不是通过这个人的,主要因素还是这个人对技术的热爱程度。因为有这种极客精神,做任何技术上的事情都是时间上的问题,所以面试过程中要尽可能表现出对技术的热爱。

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

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

因为一线公司业务的复杂度也决定了业务的深度,如果没有较好的深度探究能力,是很难胜任的,所以知识的深度也很重要。

欢迎评论区留言答案!!!!!!!!

收藏
评论区

相关推荐

Android抖音去水印APP
本文同步发表于我的微信公众号,在微信搜索 OpenCV or Android 即可关注。 前言 微信8.0.0更新以后,大伙玩得不亦乐乎,除了会动的表情,特效的炸弹、烟花等,还有一个亮点就是微信个人状态背景,既可以挂图片,更可以挂视频,给人一种万物皆可短视频的感觉。我也很爱这个功能,但是奈何鄙人才疏学浅,没法制作炫酷的短视频。只能使用去抖音水印工具获取
Android面试知识整理:面试完十多次互联网大厂之后,我发现面试官对Android这些知识点百问不厌
之前8月份为了准备面试复习了Android的一些原理知识,并陆陆续续的总结了一些面试相关的东西,因为太久没写面试之类的博客了,今天就想做一个Android面试知识的分享。 但是无奈本人太蔡了(灬ꈍ ꈍ灬),在北京、深圳(远程视频面试)面试了十多家大厂就只拿到了乐视和小米的offer,综合来说小米的薪资比要比乐视高一点。听了朋友建议,选择了小米,打算着以后准
Android经典面试题,也可以提升综合能力
基础问题相关 1、接口的意义百度 2、抽象类的意义百度 3、内部类的作用乐视 4、Java 虚拟机的特性百度乐视 5、哪些情况下的对象会被垃圾回收机制处理掉美团小米 6、进程和线程的区别猎豹美团 7、java中和equals和hashCode的区别乐视 8、HashMap的实现原理美团 9、stringst
GitHub最牛的Android开源项目,金三银四
Android目前也是非常成熟的,如今移动的变化也是比较大,不管是从Android系统本身的变化还是语言上,自从17年kotlin的作为第一语言,涉及到Android系统周边的非常之多内容,若全部自己去实现及掌握可能需要花费很多的精力,现在github中有很多非常优秀的项目,快速的学习及掌握; 1,视频播放器,基于IJKPlayer(兼容系统MediaPl
AT大牛带你深度剖析Android 10大开源框架
做了几年的Android开发,也面试过不少公司,被面试过,也面试过不少人,其实Android的技术真的是无边界,不管你做过多牛的项目,不管你多久的经验在Android开发中不可能是停滞不前的,需要不断的学习及总结,否则难以解公关技术问题,下面把我压箱底的视频资料贡献给大家; 一,android视频教程 Android视频教程: 1,Android入门
Android开发,干货
内存检测 leakcanary https://github.com/square/leakcanary 响应式编程 RxJava https://github.com/ReactiveX/RxJava RxAndroid https://github.com/ReactiveX/RxAndroid 消息通信 EventBus 组
Android 自学必备网站
一,Android 自学网站给 Android 自学者朋友推荐几个自学网站:1. Android Developers作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会。网站:https://developer.android.com/2. Android专业中文社区Android专业
Flutter - 深入理解Flutter引擎启动
基于Flutter 1.5,从源码视角来深入剖析flutter引擎的启动流程,相关源码目录见文末附录一、Flutter引擎启动工作 1.1 Flutter启动概览Flutter作为一款跨平台的框架,可以运行在Android、iOS等平台,Android为例讲解如何从Android应用启动流程中衔接到Flutter框架,
非常实用的GitHub项目
CoilCoil是Android上的一个全新的图片加载框架,它的全名叫做 coroutine image loader,即协程图片加载库。与传统的图片加载库Glide,Picasso或Fresco等相比。该具有轻量(只有大约1500个方法)、快、易于使用、更现代的API等优势。它支持GIF和SVG,并且可以执行四个默认转换:模糊,圆形裁剪,灰度和圆角。示例如
Android技术架构演进与未来
引言众所周知,Android是谷歌开发的一款基于Linux的开源操作系统,每年迭代一次大版本升级。 小米、华为、OPPO、VIVO、三星等各大厂商对Android原生系统进行二次开发衍生出具有各家特色的系统(比如MIUI),为手机、电视、平板电脑、手表等数十亿设备提供平台支持,使得Android作为全球最受欢迎的移动操作系统。Android诞生至今已
Android深入理解JNI(一)JNI原理与静态、动态注册
Android框架层 Android深入理解JNI Android框架层本文首发于微信公众号「刘望舒」 前言JNI不仅仅在NDK开发中应用,它更是Android系统中Java与Native交互的桥梁,不理解JNI的话,你就只能停留在Java Framework层。这一个系列我们来一起深入学习JNI。<!more 1.JNI概述Android系统按语言来划分的
Android Binder原理(六)Java Binder的初始化
Binder原理 Android框架层本文首发于微信公众号「刘望舒」<!more 前言在这篇文章中,我根据Android系统的分层,将Binder机制分为了三层:1. Java Binder (对应Framework层的Binder)2. Native Binder(对应Native层的Binder)3. Kernel Binder(对应Kernel层的Bi
Android Binder原理(七)Java Binder中系统服务的注册过程
Binder原理 Android框架层本文首发于微信公众号「后厂技术官」<!more 前言在这篇文章中,我介绍的是Native Binder中的系统服务的注册过程,这一过程的核心是ServiceManager,而在Java Binder中,也有一个ServiceManager,只不过这个ServiceManager是Java文件。既然要将系统服务注册到Ser
Android解析WindowManager(一)WindowManager体系
Android框架层 Android系统服务 WindowManagercategories: Android框架层本文首发于微信公众号「刘望舒」 前言WindowManagerService(WMS)和AMS一样,都是Android开发需要掌握的知识点,同样的,WMS也很复杂,需要多篇文章来进行讲解,为何更好的理解WMS,首先要了解WindowManage
全靠这份Android知识点PDF大全,月薪30K
第一阶段:Android 基础知识回顾: 回顾Android 开发编程,深入理解Android系统原理和层次结构,深入分析Handler源码和原理; 回顾Java,C/C++,Kotlin、dart 在Android开发中必用的语言,熟悉一下几种语言混淆后的特性; 回顾Android IPC和JNI的底层原理和热更新技术回顾Native开发要点,使用C++结