前言
说起IT行业,大多数人脑海里反应出的第一个标签一定是“高薪”,而说起程序员,大家更多想到的可能是:
秃顶、木讷、格子衫;
加班多、能赚钱、不花钱;
没对象……
这难道就是传说中的“国际驰名双标”?程序员难道就不是IT 行业的?
上面的都还不是最让人担心的,关键是,网上还有很多人说“程序员在互联网行业里面是吃青春饭的,干到35岁就会被行业淘汰掉”。
这下子戳到了大家心里的痛点。
一.字节跳动
-
讲讲面向过程、面向对象、面向切面。
-
指针和数组的关系和区别。
-
讲讲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高级进阶视频:
架构师项目实战——全球首批Android开发者对Android架构的见解
附相关架构及资料
%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)
附相关架构及资料
[外链图片转存中…(img-kLPV7mcT-1611821961648)]
领取获取往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。