📚 课程介绍
本课程旨在帮助Android开发者全面掌握面试技巧,深入解析技术难点,提升面试成功率。
📋 学习前提
1. Java基础(Java是Android开发的主要语言,需要掌握基本语法和面向对象编程) 2. Android基础(了解Android开发环境、基本组件和生命周期) 3. Kotlin基础(Kotlin是Android开发的新语言,了解其特性和语法)
📖 课程目录
第1章 课程导学与学习指南
1-1 Android面试-课程导学
1-2 大厂的面试过程是怎样的?
第2章 大厂资深面试官教你如何写出更出色的简历
2-1 如何写有针对性的简历
2-2 如何提高简历的可读性?
第3章 JVM——语法和内存类面试题的最终归宿
3-1 JVM知识体系梳理
3-2 Android平台的虚拟机是基于栈的吗?
3-3 为什么dex文件比class文件更适合移动端?
3-4 你能不能自己写一个叫做java.lang.Object的类?
3-5 所有被new出来的实例,都是放在堆中的吗?
3-6 GC为什么会导致应用程序卡顿?(一)
3-7 GC为什么会导致应用程序卡顿?(二)
3-8 Android平台虚拟机中的CG又是怎样的?
3-9 双重检测的单例,为什么还要加volatile关键字?(一)
3-10 双重检测的单例,为什么还要加volatile关键字?(二)
3-11 JVM篇总结
第4章 语言是武器——关于Java和Kotlin中的难点、原理和编程思想
4-1 面试中,会问哪些Java、Kotlin语言 本身相关的问题?
4-2 String的intern方法,使用场景是什么?(一)
4-3 String的intern方法,使用场景是什么?(二)
4-4 String的hashCode为什么乘数是31?
4-5 HashMap的容量为什么一定是2的n次幂?
4-6 Java的数组为什么不支持泛型?
4-7 如何在运行时获得泛型类型?
4-8 匿名内部类使用的外部变量,为什么一定要加final?(一)
4-9 匿名内部类使用的外部变量,为什么一定要加final?(二)
4-10 Java语言中有闭包吗?
4-11 都是编译成字节码,为什么Kotlin能支持Java中没有的特性?
4-12 Kotlin如何通过中间代码添加来实现新特性?
4-13 Kotlin如何通过元注解和Metadata来实现新特性?
4-14 如何理解面向对象的编程原则?(一)
4-15 如何理解面向对象的编程原则?(二)
4-16 你遇到过哪些经典的设计模式使用案例?(一)
4-17 你遇到过哪些经典的设计模式使用案例?(二)
4-18 如何理解Kotlin中的函数式编程特性?
4-19 函数式编程中也有设计模式吗?
4-20 语言篇总结
第5章 平台是战场——从Androd平台本身出发,去剖析、容错与优化
5-1 你做过哪些内存治理相关的工作?
5-2 Android中,如何进行堆内存治理 (一)
5-3 Android中,如何进行堆内存治理?(二)
5-4 Android中,如何进行线程和FD治理?
5-5 如何实现一个能加载海量数据的列表?
5-6 当我们点击应用图标时,系统都做了什么?(一)
5-7 当我们点击应用图标时,系统都做了什么?(二)
5-8 AMS,是如何帮助App启动Activity的?
5-9 启动Activity之前,是如何为它分配任务栈的?
5-10 Activity是如何显示在屏幕上的?
5-11 Android中的屏幕刷新机制是怎样的?
5-12 在SQLite中,without rowid的使用场景是什么?
5-13 Parcelable为什么速度优于 Serializable ?
第6章我们的定位是架构师
6-1 面试中,会问哪些关于架构方面的问题
6-2 为什么一定要有分层架构?
6-3 MVP为什么比MVC更适合Android开发?
6-4 MVVM就是MVP再加上DataBinding吗?
6-5 Jetpack给架构模式带来了怎样的改变?
6-6 Compose给MVVM带来了怎样的改变?
6-7 Room给MVVM带来了怎样的改变?
6-8 你做过组件化吗?
6-9 如何实现组件化?
6-10 Android架构篇总结
第7章如何用工程思维解决问题
7-1 如何从工程构建的角度出发,解决问题?
7-2 Android工程的构建过程是怎样的?
7-3 Gradle在构建阶段都做了什么?
7-4 Gradle中的Task是什么?
7-5 AndroidGradlePlugin的工作原理
7-6 如何用工程手段,提高写代码的生产力?
7-7 如何用字节码手段,实现热修复?
7-8 工程篇总结
第8章面试中的技巧与定位——大厂资深面试
8-1 面试有哪些常见套路?
8-2 被“奇葩”面试官“针对
8-3 如何让自己的项目经历,更有说服力?
8-4 如何应对开放性问题?
第9章课程总结
9-1 课程总结
