- 什么是深拷贝和浅拷贝
- 手写链表逆序代码
- 讲一下对树,B+树的理解
- 讲一下对图的理解
- 判断单链表成环与否?
- 链表翻转(即:翻转一个单项链表)
- 合并多个单有序链表(假设都是递增的)
(四) 线程、多线程和线程池
- 开启线程的三种方式?
- 线程和进程的区别?
- 为什么要有线程,而不是仅仅用进程?
- run()和start()方法区别
- 如何控制某个方法允许并发访问线程的个数?
- 在Java中wait和seelp方法的不同;
- 谈谈wait/notify关键字的理解
- 什么导致线程阻塞?
- 线程如何关闭?
- 讲一下java中的同步的方法
- 数据一致性如何保证?
- 如何保证线程安全?
- 如何实现线程同步?
- 两个进程同时要求写或者读,能不能实现?如何防止进程的同步?
- 线程间操作List
- Java中对象的生命周期
- Synchronized用法
- synchronize的原理
- 谈谈对Synchronized关键字,类锁,方法锁,重入锁的理解
- static synchronized 方法的多线程访问和作用
- 同一个类里面两个synchronized方法,两个线程同时访问的问题
- volatile的原理
- 谈谈volatile关键字的用法
- 谈谈volatile关键字的作用
- 谈谈NIO的理解
- synchronized 和volatile 关键字的区别
- synchronized与Lock的区别
- ReentrantLock 、synchronized和volatile比较
- ReentrantLock的内部实现
- lock原理
- 死锁的四个必要条件?
- 怎么避免死锁?
- 对象锁和类锁是否会互相影响?
- 什么是线程池,如何使用?
- Java的并发、多线程、线程模型
- 谈谈对多线程的理解
- 多线程有什么要注意的问题?
- 谈谈你对并发编程的理解并举例说明
- 谈谈你对多线程同步机制的理解?
- 如何保证多线程读写文件的安全?
- 多线程断点续传原理
- 断点续传的实现
第二章、Android知识点汇总
-
Activity
-
Fragment
-
Service
-
BroadcastReceiver
-
ContentProvider
-
数据存储
-
View
-
进程
-
Parcelable 接口
-
IPC
-
Window / WindowManager
-
Bitmap
-
屏幕适配
-
Context
-
SharedPreferences
-
消息机制
-
线程异步
-
RecyclerView 优化
-
Webview
第三章、Android扩展知识点
-
ART
-
Apk 包体优化
-
Hook
-
Proguard
-
架构
-
Jetpack
-
NDK 开发
-
类加载器
第四章、Android开源库源码分析
-
LeakCanary
-
EventBus
-
Glide :加载、缓存、LRU 算法 (如何自己设计一个大图加载框架) (LRUCache 原理)
-
install
-
ARouter
-
插件化(不同插件化机制原理与流派,优缺点。局限性)
-
热修复
-
RXJava (RxJava 的线程切换原理)
-
Retrofit (Retrofit 在 OkHttp 上做了哪些封装?动态代理和静态代理的区别,是怎么实现的)
-
OkHttp
-
总结
五、计算机基础面试题
京东面试也会考察计算机基础,主要考察我们是否系统的学习了操作系统和计算机组成原理,因为只有我们看完操作系统后才能系统的认识计算机的原理。
-
网络框架对比和源码分析
-
网络七层协议有哪些?
-
Http 和 Https 的区别?Https为什么更加安全?
-
HTTPS的连接建立流程
-
解释一下 三次握手 和 四次挥手
-
TCP 和 UDP的区别
-
Cookie和Session
-
DNS是什么?
-
DNS解析过程
-
HTTP报文结构
-
HTTP与HTTPS的区别以及如何实现安全性
-
如何验证证书的合法性?
-
https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解?
-
client如何确定自己发送的消息被server收到?
-
谈谈你对WebSocket的理解
-
WebSocket与socket的区别
-
谈谈你对安卓签名的理解。
-
请解释安卓为啥要加签名机制?
-
视频加密传输
-
App 是如何沙箱化,为什么要这么做?
-
权限管理系统(底层的权限是如何进行 grant 的)?
尾声
最后,我再重复一次,如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
最后想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。
当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。
进阶学习视频
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!