1.写在前面
Google在上周发布了Android Studio 3.0的正式版本,周四早晨在上班的地铁上就看到群里在沸沸扬扬的讨论关于3.0版本的各种坑,啊,不对,各种特性,到公司之后就迫不及待的更新了3.0版本,嗯,还算顺利,只遇到了一个坑,一切都在happy的进行着。
什么,你以为我想要写遇到的坑是什么,呵呵哒,我才不会告诉你,等等。。。手里的板砖先放下,一会说还不行吗,今天我们主要来聊聊如何在Android Studio 3.0上分析内存泄漏,文章的内容很简单,但是自己摸索还是需要一些时间的,所以就在这里记录下来分享给大家。
一.字节跳动
-
讲讲面向过程、面向对象、面向切面。
-
指针和数组的关系和区别。
-
讲讲Android handler。
-
队列和栈的区别和用途。
-
两个栈实现队列。
-
输入Url到浏览器显示过程。
-
http请求方法。
-
get和post区别。
-
surficeView和view的区别。
-
app从点击图标开始的启动全过程。
-
什么是线程安全。
-
线程安全有哪些机制。
-
如何保证 int加加(加号打不出来)线程安全。
-
Android线程间通信有哪些机制。
-
cpu调度方式有哪些。
-
空间局部性和时间局部性。
-
数据库乐观锁和悲观锁。
-
数据库索引作用,优缺点。
-
TCP拥塞控制。
-
https加密传输过程。
-
java内存模型。
-
java垃圾回收算法有哪些。
-
讲讲标记清除算法。
-
java四中引用。
-
谈谈线程池原理
二.百度
- jvm内存模型,类里面各种数据都存在哪个区域
- 类加载机制,过程,双亲委派
- 类的结构, 对象头
- gc算法和回收器
- OOM
- 怎么防止内存泄露
- volatile,synchronized,读写锁,可重入锁,互斥锁,自旋锁
- ThreadLocal
- wait,notify,notifyall
- 操作系统中虚拟内存是怎么实现的?
- 用socket实现一个TCP连接
- 树的遍历方式
- 深度优先遍历的几种方式
- 用栈实现先序遍历
- 二分查找的时间复杂度,对数据有什么要求?
- 你对数据结构这门课是怎么理解的?
- HTTPS,CA
- FTP协议
- 浏览器输入网址到页面显示的过程
- TCP的包装结构
- 7层网络模型
- 信息储存的方式,应用场景
- 进程间通信的方式,aidl
- Bundler原理
- Handler机制
- HandlerThread,IntentService,AsyncTask
- 点击事件分发机制
- 滑动冲突解决
- 广播注册方式,区别
- 有序无序广播,本地广播
- 服务的启动方式,区别,用途
- 数据提供者怎么用?原理?
- 布局是怎样加载的?有哪些方式
- 绘制优化方式
- 看过哪些第三方库的源码?
####三.其他 - 算法相关面试
- 屏幕适配
- 自定义View
- 事件传递机制的认识
- Opengl
- OpenCV
最后我还整理了很多Android中高级的PDF技术文档。以及一些大厂面试真题解析文档。需要的朋友都可以点击我的文档直接获取
Android高级架构师之路很漫长,一起共勉吧!
ocs.qq.com/doc/DSkNLaERkbnFoS0ZF)直接获取**
[外链图片转存中…(img-4JgxviOG-1618297197303)]
Android高级架构师之路很漫长,一起共勉吧!