前言
程序员这个行业,日新月异,技术体系更新速度快,新技术新框架层出不穷,所有的技术都像是一个无底洞,当你学得越多就会发现不懂的越多,不懂的越多,需要学习的就更多。
因此,一旦选择了这个行业,就意味着你必须不断学习才能跟得上大家的脚步,而要想成为一名优秀的程序员,更是需要通过正确的方法,设定正确的目标来进行不断地学习。
作为一名常年在各种技术群里吹水却又无比热心肠的老司机,看到有人提问时,总是会蹦出来帮忙解决问题,因此,群里的很多小伙伴经常会找我询问应该怎么样学习一门技术,和大家也都非常亲切了。
只要需要帮助的地方就会有我的身影,所以,为了帮助部分同学解决一些学习上的困惑,今天我就来分享和探讨下我的一些学习经验,大家如果有什么意见或建议,欢迎在评论中留言哈。
一.字节跳动
-
讲讲面向过程、面向对象、面向切面。
-
指针和数组的关系和区别。
-
讲讲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架构视频+BATJ面试专题PDF+核心笔记等资料+源码+思维导图】**。希望能够帮助到大家提升技术。如果大家想要获取的话,可以免费获取哦~
高级进阶篇——高级UI,自定义View(部分展示)
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
- 面试题部分合集
去项目实战,读源码,研究原理吧!
[外链图片转存中…(img-nPwnaCbf-1621854345832)]
- 面试题部分合集
[外链图片转存中…(img-rU8XUIAK-1621854345834)]