2023 Android 校招&实习面试题库

97 阅读7分钟

一、Java

1.1 操作系统相关

  1. 什么是操作系统?
  2. 什么是线程,什么是进程?

1.2 JDK&JVM&JRE

  1. JDK & JVM & JRE分别是什么以及它们的区别?
  2. 解释一下为什么Java可以跨平台?

1.3 面向过程 & 面向对象

  1. 什么是面向过程 & 什么是面向对象 & 区别?
  2. 给我说说Java面向对象的特征以及讲讲你代码中凸显这些特征的经验。
  3. 什么是重载 & 什么是重写 & 区别。
  4. 谈谈你对this和super的认识。
  5. 接口和抽象类的区别。
  6. 静态属性和静态方法能被继承吗?静态方法又是否能被重写呢?
  7. 给我说说权限修饰符特性。
  8. 给我谈谈Java中的内部类。
  9. static关键字的作用?
  10. final关键字的作用?

1.4 八大基本数据类型&引用类型

  1. 说说Java中的8大基本类型 & 内存中占有的字节 & 什么是引用类型?
  2. 什么是拆箱 & 装箱,能给我举栗子吗?

1.5 数组

1.6 Java异常

  1. 说说Java异常体系主要用来干什么的 & 异常体系?
  2. Error和Exception的区别?
  3. 说说运行时异常和非运行时异常的区别?
  4. 如何自定义一个异常?
  5. throw和throws 的区别?
  6. try{}catch{}finally{}可以没有finally吗?
  7. finally语块有什么特点?
  8. return在try{}catch{}finally{}中执行具有哪些规则?
  9. 给我例举至少5个常见的运行时异常。

1.7 NIO/BIO/AIO

  1. NIO是什么 & BIO是什么 & AIO是什么 & 它们之间的区别?
  2. IO按照方向和数据类型划分能划分为哪些数据流?

1.8 集合(容器)

  1. 说说Java中集合的框架?
  2. Collection & Map区别。
  3. Map的遍历方式有哪些?

1.9 线程

  1. 什么是线程?能解决什么问题。
  2. Java中创建线程的2种方式 & 区别?
  3. 给我说说线程的生命周期。
  4. 线程死锁的原因 & 举个栗子 & 如何避免死锁。
  5. Synchronized放在静态方法和非静态方法上的锁对象分别是什么?
  6. 如何停止掉一个线程?
  7. 给我说说线程池的种类 & 特点 & 内部原理 & 平时当中使用案例。
  8. wait()和sleep()的区别?

1.10 泛型

1.11 反射

1.12 注解

1.13 Socket编程

  1. 什么是Socket编程?
  2. 什么是TCP,什么是UDP,二者之间区别如何?

1.14 设计模式

  1. 说说设计模式的六大原则。
  2. 请讲讲你会使用的一些设计模式?
  3. 请说说单例模式 & 你项目中常用的单例模式。
  4. 懒汉单例模式为什么要加volaitle?
  5. 能否给我说说Android中至少3个用到设计模式的栗子?

1.15 JVM相关

1.16 高级Java知识点

1.17 其它Java部分有关面试题

  1. 为什么局部内部类访问局部变量需要final?
  2. String、StringBuffer、StringBuilder、CharSequence的区别。
  3. equals和==的区别?
  4. 关于字符串的拼接你在项目中常常怎么操作的?为什么不能用“+”的方式进行拼接呢?
  5. 什么是Callback,讲讲你项目中使用的一些有关Callback的栗子。
  6. retrun & break & continue 区别?
  7. 如何判断一个字符串是回文字符串?
  8. final,finally,finalize的区别?
  9. 给我谈谈正则表达式。
  10. 如何将String转成int?

二、Kotlin部分

三、Android 部分

四大组件是哪四个?ABCS(Activity,Braodcast,ContentProvider,Service)

3.1 Activity

  1. Activity是什么?
  2. 典型情况下的Activity生命周期?
  3. 异常情况下的Activity的生命周期 & 数据如何保存和恢复?
  4. 从Activity A跳转到Activity B之后,然后再点击back建之后,它们的生命周期调用流程是什么?
  5. 如何统计Activity的工作时间?
  6. 给我说说Activity的启动模式 & 使用场景。
  7. 如何在任意位置关掉应用所有Activity & 如何在任意位置关掉指定的Activity?
  8. 什么情况下Activity会单独执行onPause?
  9. 说说Activity横竖屏切换的生命周期。
  10. Activity可以设置为对话框的形式吗?

3.2 BroadcastReceiver

  1. 广播是什么?
  2. 广播的注册方式有哪些?
  3. 广播的分类 & 特性 & 使用场景?

3.3 ContentProvider

  1. 什么是内容提供者?
  2. 说说如何创建自己应用的内容提供者 & 使用场景。

3.4 Service

  1. 什么是Service?
  2. 说说Service的生命周期。
  3. Service和Thread的区别?

3.5 Handler

  1. 子线程一定不能更新UI吗?
  2. 给我说说Handler的原理。

3.6 AsyncTask

AsyncTask是什么?能解决什么问题。

3.7 Fragment

3.8 序列化

  1. 什么是序列化 & 能用来干什么?
  2. Android中序列化方式有几种?说说它们的区别。

3.9 IPC

3.10 文件存储

  1. 说说Android中数据持久化的方式 & 使用场景。
  2. SQLite是线程安全的吗 & SharedPreference是线程安全的吗?
  3. 请简单的给我说说什么是三级缓存?
  4. 千奇百怪的SQL语句考察。

3.11 ListView & RecyclerView

  1. ListView是什么?如何使用?
  2. RecyclerView是什么?如何使用?如何返回不一样的Item。
  3. ListView和RecycyclerView的区别是什么?
  4. 分别讲讲你对ListView & RecyclerView的优化经验。

3.12 图片编程

3.13 WebView

  1. WebView是什么?
  2. WebView会导致内存泄露吗?原因是什么?解决方式有哪些?

3.14 ViewPager

什么是ViewPager?说说它的那些适配器。

3.15 View事件分发机制

什么是事件分发机制?主要用来解决什么问题?

3.16 View绘制机制

说说View绘制流程。

3.17 布局

说说Android中有哪些布局 & 特点。

3.18 Binder

3.19 动画机制

Android中的动画分为哪些种类 & 特点 & 缺点。

3.20 JNI

3.21 Window & Appliction & Context

3.22 通知

Android 8.0如何适配通知?

3.23 对话框(Dialog & DialogFragment & PopWindow)

说说Android中对话框可以用哪些方式完成?

3.24 蓝牙

说说最新的蓝牙版本?新版本的特性是什么?

3.25 冷启动&热启动

3.26 悬浮窗

3.27 Android版本

最新的Android版本多少知道吗?有哪些特性。

3.28 Android Studio

  1. 你现在比较常用Android Studio那个版本 & 用的Gradle版本是多少?
  2. 说说Android Studio中大致项目结构?

3.29 UI卡顿优化

ANR是什么?导致原因有哪些?

3.30 内存优化

什么是OOM & 什么是内存泄漏 & 什么是内存抖动?

3.31 屏幕适配

3.32 多渠道打包 & apk签名

apk为什么需要签名

3.33 项目架构

说说你用过的项目架构?

3.34 Android前沿知识

3.35 音视频开发(高薪)

3.36 热修复 & 插件化

3.37 其它Android部分有关面试题

3.38 经验相关面试题

3.39 安全 & 性能优化

3.40 Gradle

四、移动UI框架部分(Flutter为主)

五、算法与数据结构部分

5.1 复杂度分析

  1. 什么是时间复杂度 & 什么是空间复杂度?
  2. 时间复杂度和空间复杂度之间存在什么联系?

5.2 数组

谈谈你对数组的理解。

5.3 链表

什么是单链表 & 双向链表 & 循环链表 & 双向循环链表 & 静态链表。

5.4 堆

5.5 栈

什么是栈 & 栈的特点是什么?

5.6 队列

什么是队列 & 队列的特点是什么?

5.7 散列表

什么是散列函数?

5.8 树

什么是二叉树?

5.9 排序

  1. 给我说说你会的排序 & 复杂度如何?
  2. 现在有10万条数据需要进行排序,你会选择什么排序?

5.10 查找

说说你知道的查找算法 & 复杂度如何?

5.11 递归&回溯算法

什么是递归 & 什么是回溯?

5.12 贪心算法

什么是贪心算法?

5.13 其它有关算法与数据结构的面试题

六、常用的开源库部分

6.1 异步通信

6.2 网络

6.3 依赖注入

6.4 图片加载

6.5 数据库

6.6 其它

分享你觉得比较好用的开源库。

七、计算机网络部分

  1. 给我介绍5层网络模型。试着说说https加密过程 & 为什么https比http要安全?
  2. Http/Https协议工作在哪一层?IP协议工作在哪一层?应用层有哪些协议?
  3. TCP/UDP协议工作在哪一层?
  4. 给我说说三次握手和四次挥手。
  5. 什么是请求头 & 响应头 ? 说说请求头中一些重要的字段。
  6. Http和Https的区别?
  7. 加密协议TLS/SSL加密过程是怎样的?
  8. 什么是DNS & 作用是什么 &工作机制?
  9. 浏览器访问一个url网址所经历的过程是什么?