4.9k Star 安卓面试知识点,请收下!

逛 Github 的时候看到一份超强面试题,来自 MindOrks 开源的 android-interview-questions。虽说是一份安卓面试题,但其中包含了 数据结构与算法Java 核心基础Android 核心基础设计模式 等各方面内容。大致浏览了一下,质量还不错,比百度出来的各种所谓 BAT 面试题 强一些。

Core Java

面向对象

1. 什么是 OOP ?

2. 抽象类和接口的区别 ?

3. Iterator 和 Enumeration 的区别 ?

4. 你同意 组合优先于继承 吗 ?

5. 方法重载和方法重写的区别 ?

6. 你知道哪些访问修饰符 ? 它们分别的作用 ?

7. 一个接口可以实现另一个接口吗 ?

8. 什么是多态 ?什么是继承 ?

9. Java 中类和接口的多继承

10. 什么是设计模式?

集合和泛型

11. Arrays vs ArrayLists

12. HashSet vs TreeSet

13. HashMap vs HashSet

14. Stack vs Queue

15. 解释 java 中的泛型

16. String 类是如何实现的?它为什么被设计成不可变类 ?

对象和基本类型

16. String 类是如何实现的?它为什么被设计成不可变类 ?

17. 为什么说 String 不可变 ?

18. 什么是 String.intern() ? 何时使用? 为什么使用 ?

19. 列举 8 种基本类型

20. int 和 Integer 区别

21. 什么是自动装箱拆箱 ?

22. Java 中的类型转换

23. Java 值传递还是引用传递 ?

24. 对象实例化和初始化之间的区别 ?

25. 局部变量、实例变量以及类变量之间的区别?

Java 内存模型和垃圾收集器

26. 什么是垃圾收集器 ? 它是如何工作的 ?

27. 什么是 java 内存模型? 它遵循了什么原则?它的堆栈是如何组织的 ?

28. 什么是 内存泄漏,java 如何处理它 ?

29. 什么是 强引用,软引用,弱引用,虚引用 ?

并发

30. 关键字 synchronized 的作用 ?

31. ThreadPoolExecutor 作用 ?

32. 关键字 volatile 的作用 ?

33. The clasess in the atomic package expose a common set of methods: get, set,, lazyset, compareAndSet, and weakCompareAndSet. Please describe them.

异常

34. try{} catch{} finally{} 是如何工作的 ?

35. Checked Exception 和 Un-Checked Exception 区别 ?

其他

36. 什么是序列化?如何实现 ?

37. 关键字 transient 的作用 ?

38. 什么是匿名内部类 ?

39. 对象的 == 和 .equals 区别 ?

40. hashCode() 和 equals() 用处 ?

41. 构造函数中为什么不能调用抽象方法 ?

42. 你什么时候会使用 final 关键字 ?

43. final, finally 和 finalize 的区别 ?

44. Java 中 static 关键字的含义 ?

45. 静态方法可以重写吗 ?

46. 静态代码块如何运行 ?

47. 什么是反射 ?

48. 什么是依赖注入 ?列举几个库 ?你使用过吗 ?

49. StringBuilder 如何避免不可变类 String 的分配问题?

50. StringBuffer 和 StringBuilder 区别 ?

51. Enumeration and an Iterator 区别 ?

52. fail-fast and fail-safe 区别 ?

53. 什么是 NIO ?

Core Android

Base

54. Android 应用组件

55. Android 应用架构

56. 什么是 Context?

57. 什么是 AndroidManifest.xml?

58. 什么是 Application ?

Activity

59. 什么是 Activity ?

60. 说明一下 Activity 和 Fragment 的生命周期

61. 什么是 Activity 的启动模式 ?

Fragments

62. 什么是 Fragment ?

63. Activity 和 Fragment 关系和区别 ?

64. 为什么建议使用默认构造函数来创建 Fragment ?

65. Fragment 之间如何通信 ?

66. 什么是 Retained Fragment ?

View 和 ViewGroup

67. 在 Android 中,什么是 View ?

68. View.GONE 和 View.INVISIBLE 的区别 ?

69. 如何创建自定义 View ?

70. 什么是 ViewGroups 以及和 View 的区别 ?

71. 什么是 canvas ?

72. 什么是 SurfaceView ?

73. 相对布局和线性布局对比

74. 谈谈 Constraint Layout

75. 你知道 View 树吗 ?如何优化它的深度 ?

展示内容集合

76. ListView 和 RecyclerView 区别 ?

77. 什么是 ViewHolder ?为什么使用它 ?

78. 什么是 SnapHelper ?

Dialog 和 Toast

79. 什么是 Dialog ?

80. 什么是 Toast ?

81. Dialog 和 Dialog Fragment 区别 ?

Intent 和 广播

82. 什么是 Intent ?

83. 什么是 显示 Intent ?

84. 什么是 隐式 Intent ?

85. 什么是 BroadcastReceiver ?

86. 什么是 LocalBroadcastReceiver ?

87. IntentFilter 的作用 ?

88. 什么是 sticky intent ?

89. 说说广播和 Intent 是如何在你的应用中传递消息的 ?

90. 什么是 PendingIntent ?

91. 广播的不同类型 ?

Services

92. 什么是 Service ?

93. Service 和 IntentService

94. 什么是 JobSchedule ?

Inter-process Communication

95. 两个不同的 app 如何通信 ?

96. 一个 app 可以多进程运行吗 ?如何实现 ?

97. 什么是 AIDL ? 列举实现步骤。

98. 你可以使用后台进程干什么 ?

99. 什么是 ContentProvider ?一般用来干什么 ?

Long-running Operations

100. 如何进行耗时任务 ?

101. 为什么要避免在主线程运行非ui代码 ?

102. 什么是 ANR ?如何预防 ?

103. 什么是 AsyncTask ?

104. AsyncTask 有哪些问题 ?

105. 你会在什么时候使用 AsyncTask 代替线程 ?

106. 什么是 Loader ?

107. AsyncTask 和 Activity 的生命周期有什么联系 ?会导致什么问题 ?如何避免 ?

108. 解释 Looper, Handler 和 HandlerThread 的作用

多媒体

109. 如何处理 Bitmap 占据大量内存 ?

110. 一个标准的 Bitmap 和一个 .9 图的区别 ?

111. 谈谈 Bitmap pool

112. Android 中如何播放声音 ?

Data Saving

113. 如何持久化数据 ?

114. 什么是 ORM ?它如何工作 ?

115. 屏幕旋转时如何保存 Activity 状态 ?

116. 你的应用中保存数据的不同方式 ?

Look and feel

117. 什么是 Spannable ?

内存优化

118. 什么是 onTrimMemory() 方法 ?

119. OutOfMemory 是如何发生的 ?

120. 在 Android 中你是如何找到内存泄漏的 ?

电量优化

121. 在 Android 中如何降低电量消耗 ?

122. 什么是 Doze ?应用支持如何 ?

123. 什么是过度绘制 ?

Supporting Different Screen Sizes

124. 你是如何进行屏幕适配的 ?

Permissions

125. 权限中有哪些不同的保护级别 ?

Native Programming

126. 什么是 NDK ,它的作用是什么 ?

127. 什么是 renderscript ?

Android System Internal

128. 什么是 Dalvik Virtual Machine ?

129. JVM, DVM 和 ART 区别

130. Dalvik 和 ART 区别

131. 什么是 Dex?

132. 你可以手动调用垃圾回收吗 ?

Debugging and Programming Tools

133. 什么是 ADB ?

134. 什么是 DDMS ?你可以用它干什么 ?

135. 什么是 StrictMode ?

136. 什么是 lint ? 它的作用是什么 ?

Others

137. 为什么使用 Bundle 传递数据 ? 为什么不使用 Map ?

138. 你是如何解决应用中的 crash 的 ?

139. 说说 Android 通知 体系

140. Serializable 和 Parcelable 区别 ? Android 中使用哪个更好 ?

141. 开发过 widgets 吗 ?

142. 什么是 AAPT ?

143. 定时刷新页面的最好方法是什么 ?

144. FlatBuffers 和 JSON

145. HashMap, ArrayMap 和 SparseArray

146. 什么是注解 ?

147. android 中如何处理 multi-touch ?

148. 如何实现 XML 命名空间 ?

149. 什么是 support library ?以及为什么引入 ?

150. 什么是 Android Data Binding ?

151. 什么是 Android Architecture Components ?

152. 如何使用 RxJava 操作符实现查找 ?

架构

153. 描述一下你最近开发的 App 使用的架构

154. 说说 MVP

155. 什么是 Presenter ?

156. 什么是 Model ?

157. 说说 MVC

158. 说说 MVI

159. 说说 Repository pattern

160. 什么是 Controller ?

161. Tell something about clean code

Android 测试驱动开发

162. 什么是 Espresso ?

163. 什么是 Robolectric ?

164. 使用 Robolectric 的缺点是什么 ?

165. 什么是 UI-Automator ?

166. 说说单元测试

167. 说说自动化测试

168. 你进行过单元测试或者自动化测试吗 ?

169. 为什么使用 Mockito ?

其他

170. 什么是 Android Jetpack ?

171. 说说 REST APIs 如何工作的

172. 说说其他的 Web Api 架构

173. 说说数据库,Sqlite

174. 关于项目管理工具,trello, basecamp, kanban, jira, asana

175. 关于构建系统, gradle, maven, ant, buck

176. 应用多 Apk 文件

177. 反编译 Apk

178. ProGuard 被用来做什么 ?

179. 什么是混淆 ? 它的作用是什么 ? minification 呢 ?

180. 你如何构建 release 安装包 ?

181. 你如何控制对于特定用户的版本更新 ?

182. 我们可以找出已经卸载我们的应用的用户吗 ?

183. Apk 文件大小优化

184. 你尝试过 Kotlin 吗 ?

185. 在开发过程中如何持续监测各种指标 ?

186. 什么是 Chrome Custom Tabs ? 如何在你的 app 中展示网页内容 ?

数据结构这块的题目不是很详细,就没有加上来。其他的根据实际情况作了部分删减,共计 186 题。

最后

喜欢的话可以关注一下哦,会每天更新android相关的文章。

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

推荐阅读更多精彩内容