赞
踩
1.GC机制
垃圾回收需要完成两件事:找到垃圾,回收垃圾。 找到垃圾一般的话有两种方法:
新生代对象分为三个区域:Eden 区和两个 Survivor 区。新创建的对象都放在 Eden区,当 Eden 区的内存达到阈值之后会触发 Minor GC,这时会将存活的对象复制到一个 Survivor 区中,这些存活对象的生命存活计数会加一。这时 Eden 区会闲置,当再一次达到阈值触发 Minor GC 时,会将Eden区和之前一个 Survivor 区中存活的对象复制到另一个 Survivor 区中,采用的是我之前提到的复制算法,同时它们的生命存活计数也会加一。
这个过程会持续很多遍,直到对象的存活计数达到一定的阈值后会触发一个叫做晋升的现象:新生代的这个对象会被放置到老年代中。 老年代中的对象都是经过多次 GC 依然存活的生命周期很长的 Java 对象。当老年代的内存达到阈值后会触发 Major GC,采用的是标记整理算法。
2.JVM内存区域的划分,哪些区域会发生 OOM
JVM 的内存区域可以分为两类:线程私有和区域和线程共有的区域。 线程私有的区域:程序计数器、JVM 虚拟机栈、本地方法栈 线程共有的区域:堆、方法区、运行时常量池
其实除了程序计数器,其他的部分都会发生 OOM。
3.类加载过程
4.双亲委派模型
5.Java 中的集合类
6.HashMap 的原理
7.什么情况下 Java 会产生死锁,如何定位、修复,手写死锁
8.sleep 和 wait 的区别
9.join 的用法
10.volatile和synchronize的区别
11.Java中的线程池
12.线程通信
13.Java中的并发集合
14.Java中生产者与消费者模式
15.final、finally、finalize区别
16.Java 中单例模式
17.Java中引用类型的区别,具体的使用场景
18.Exception 和 Error的区别
19.volatile
1.http 状态码
2.http 与 https 的区别?https 是如何工作的?
3.TCP三次握手流程
1.进程间通信的方式有哪几种
AIDL 、广播、文件、socket、管道
2.广播静态注册和动态注册的区别
3.Android 性能优化工具使用(这个问题建议配合Android中的性能优化)
Android 中常用的性能优化工具包括这些:Android Studio 自带的 Android Profiler、LeakCanary、BlockCanary
Android 自带的 Android Profiler 其实就很好用,Android Profiler 可以检测三个方面的性能问题:CPU、MEMORY、NETWORK。
LeakCanary 是一个第三方的检测内存泄漏的库,我们的项目集成之后 LeakCanary 会自动检测应用运行期间的内存泄漏,并将之输出给我们。
BlockCanary 也是一个第三方检测UI卡顿的库,项目集成后Block也会自动检测应用运行期间的UI卡顿,并将之输出给我们。
4.Android中的类加载器
5.Android中的动画有哪几类,它们的特点和区别是什么
6.Handler 机制
7.Android 性能优化
8.Android 内存优化
9.Binder 机制
10.LruCache的原理
11.DiskLruCache原理
12.设计一个图片的异步加载框架
13.Android中的事件分发机制
14.View的绘制流程
15.Android 源码中常见的设计模式以及自己在开发中常用的设计模式
16.Android与 js 是如何交互的
17.热修复原理
18.Activity 启动过程
19.SparseArray 原理
20.图片加载如何避免 OOM
21.大图加载
1.OkHttp
2.Retrofit
3.RxJava
4.Glide
5.EventBus
1.手写快排
2.手写归并排序
3.手写堆以及堆排序
4.说一下排序算法的区别(时间复杂度和空间复杂度)
工作中解决了什么难题,做了什么有成就感的项目(这个问题一定会问到,所以肯定要做准备)
面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。
学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。
同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可免费领取!
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可免费领取!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。