准备技巧
拿到了心仪的offer来回馈一波,在面试题开始之前想给大家先分享一些经验。
- 不要盲目复习和看面经中涉及到的基础知识**,重点去准备项目中涉及到的基础知识。
- java很重要,不要以为android基础最重要,我面了好多家了都是java的比重最大。
- 简历上的个人技能突出你几个你最熟悉的关键点,不要只写熟悉android,熟悉java。比如熟悉网络请求库OkHttp或Retrofit,或者熟悉View、IPC等等等,这样面试官才会有针对性的去考察你。
- 项目不好没关系,但是要熟悉,建议自己以博客的形式记录下项目的整体流程和一些关键技术的使用。
面经(1-2面技术问题汇总)
可能还有些问题记不住了,还有就是这里只是简单写个问题的方向,具体面试的时候会继续深入问,所以看着问题少但面试时间反而很长。
java问题
1.以下两种创建String方式的区别,== 与equals 的区别,以及Object类中equals 的原理,new一个对象所经历的步骤(判断是否加载,内存分配等等等),以及str在栈中与内存中的存储。
String str = new String("hello");
String str2 = "hello";
2.java中Exception的结构(exception class结构关系父类子类等等等)
3.Java IO的结构与区别
4.java中创建线程的方式
5.java中可以保证多线程安全的方式(包括:字段,多种锁,保证线程安全的数据结构与实现)
6.虚拟机中的内存分配
7.ThreadLocal的内部原理,以及Thread中有什么属性和方法。
8.ArrayList与LinkedList的区别,以及数组扩容。
9.乐观锁与悲观锁
代码
1.手写冒泡排序
2.手写翻转二叉树
3.手写两个单例模式,DCL和静态内部类(同时问了final关键字与静态内部类为什么能满足单例模式)
计算机基础
1.TCP/IP的四层结构
2.TCP三次握手与四次挥手
3.TCP的报文
4.Http的报文
5.put与get的区别
6.put与post的区别
Android
1.Android中解决滑动冲突的方式: 考察的不是内部拦截与外部拦截,其实考察的是:NestedScrollParent NestedScrollChild
2.Activity的生命周期与四种启动模式。(除普通的那些还有onRestoreInstanceState与onSaveInstanceState与onNewIntent以及他们的使用场景与区别) 注意调用onNewIntent不会再调用onCreate方法了,会直接调用onStart与onResume。如果是已经不可见的Activity(调用了onStop的,则会先调用onRestart之后在调用onStart方法)。
3.View的绘制过程(非常详细地说),具体还有些仔细的小问题。
4.View的事件分发(非常详细地说),具体还有些仔细的小问题。
5.多个具体的场景讲述Activity生命周期调用的过程。诸如一个Activity打开另一个Activity,他们之间的生命周期调用。
6.了解RN么,了解前端么。
其他问题
协作上的问题(发散性问题)
1.如何评估一个需求多久能够做完;
2.给出的时间比你想象的少会怎么做;
3.给出的时间比你想象的多会怎么做;
4.如何学的android,看过哪些书
5.实习时间与实习长度
6.项目的个人完成情况
7.反问环节的部门介绍,工作介绍等等等。
学习方式
技能储备冲击大厂
Android学习是一条漫长的道路,我们要学习的东西不仅仅只有表面的 技术,还要深入底层,弄明白下面的 原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足。
如果你觉得自己学习效率低,缺乏正确的指导,可以参考下下面分享我多年工作以来收集整理的学习路线,给大家做个参考
知识点
接下来分享的系统学习资源以详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用。
帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份资料中有所一些收获。。
1.2020大厂面试高频知识点
- 图片
- 网络和安全机制
- 数据库
- 插件化、模块化、组件化、热修复、增量更新、Gradle
- 架构设计和设计模式
- 性能优化
- Android Framework
- Android优秀三方库源码
2.Jetpack架构组件从入门到精通
- Android Jetpack - Navigation
- Android Jetpack - Data Binding
- Android Jetpack - ViewModel & LiveData
- Android Jetpack - Room
- Android Jetpack - Paging
- Android Jetpack - WorkManger
- Android Jetpack架构组件之Lifecycle
- Android Jetpack Compose 最全上手指南
3.Framework精编内核解析
主要内容包含:
- 深入解析Binder
- 深入解析Handler
- Dalvik VM 进程系统
- 深入解析 WMS
- PackagerManagerService
4.Kotlin强化实战(附Demo)
- 第一章 Kotlin入门教程
- 第二章 Kotlin 实战避坑指南
- 第三章 项目实战《Kotlin Jetpack 实战》
- 从一个膜拜大神的 Demo 开始
Kotlin 写 Gradle 脚本是一种什么体验? Kotlin 编程的三重境界 Kotlin 高阶函数 Kotlin 泛型 Kotlin 扩展 Kotlin 委托 协程“不为人知”的调试技巧 图解协程:suspend
5.Android设计思想解读开源框架
- 热修复
- 插件化
-组件化框架设计 - 图片加载框架
- 网络请求框架
- RXJava 响应式编程框架设计
- IOC 架构设计
- Android架构组件Jetpack
6.NDK模块开发
- NDK 模块开发
- JNI 模块
- Native 开发工具
- Linux 编程
- 底层图片处理
- 音视频开发
- 机器学习
7.Android源码解析
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。
**以上这些内容均免费分享给大家,需要完整版的朋友,欢迎点击下发二维码,免费领取,赶紧扫一扫吧。
|