没有写完所有的知识点,只是面试中会问到的一些知识点
Java基础
java语言的特性:封装,继承,多态
面向对象的五个基本原则
抽象类与接口的区别
java序列化
匿名内部类
==与equals()
基本数据类型的所占字节数与取值范围
final,finaly,finalize
重写与重载
访问修饰符
自动装箱与拆箱
本地变量、实例变量以及类变量之间的区别
如何理解java中的引用对象
反射
枚举
迭代器
Object有哪些方法
线程与同步
基本数据类型对应的包装类
如何理解java既是一门静态语言又是一门动态语言
java的运算符
异常
泛型
注解
String,StringBuffer,StringBuilder
HashMap,ConcurrentHashMap,HashTable
java集合类及其架构
java文件流
NIO
jvm虚拟机
java有哪些虚拟机
android中的虚拟机----dalvik虚拟机(art)
java虚拟机架构
类加载子系统
Java虚拟机类加载器(引导类加载器,自定义类加载器)
双亲委派机制与java源码安全
类初始化(默认值0值,<clinit>)
java内存模型(PC,Stack,Native Stack,Heap,Method Area,DirectorMemory)
程序计数器
虚拟机栈(栈帧,局部变量表,操作数栈,动态链接,方法返回地址,一些附加信息)
堆(新生代(Eden,Form,To),老年代,元空间)
垃圾回收算法
java分派机制
String常量池
对象生命周期
推荐观看尚硅谷的宋红康老师的学习jvm视频https://www.bilibili.com/video/BV1PJ411n7xZ书籍:周志明.《深入理解java虚拟机》第三版
安卓基础
安卓的四大组件(活动,服务,内容提供器,广播)
活动的生命周期(正常生命周期,异常生命周期)
4种启动模式与应用场景
基本的布局管理器
ListView与RecyclerView
Fragment的生命周期
Activity与Fragment
广播(广播与接收器,静态注册与动态注册,标准,有序,本地)
服务(前台服务,后台服务,本地服务,远程服务,bind与start),服务的生命周期
Paracelable
AIDL
Binder,Messenger
文件操作
SharedPreference
SQLite数据库的使用
内容提供器ContenProvider,ContentResolver
动态权限申请
android9.0网络配置
通知(Notification)
进程与线程
进程的优先级
多线程&同步
线程池
线程底层实现(见jvm篇)
线程的sleep与wait,Object的方法
AsyncTask源码
Glide与Picasso(目前没看过Picasso,也不准备看)
Android消息机制(Message,MessageQueue,Handler,Looper)
网络基础
TCP/IP
Http协议
Http与Https
OkHttp源码
Volley源码
Retrofit源码
缓存策略(3级缓存)
自定义View
View体系与事件分发机制
RemoteViews
Drawable
动画
设计模式(单例模式,工厂模式,建造者模式,代理模式,装饰模式,适配器模式,观察者模式...)
应用架构MVC,MVVM,MVP
注解(ButterKnife,Dagger2源码){ps:涉及到设计模式,java反射}
事件总线EventBus(源码),Otto(简单)
函数响应式编程(RxJava)
android的启动过程
布局优化
CrashHandler
各种优化(差的远)
反编译与打包
签名
加固(这个只看过理论)
JNI与NDK(熟练程度太低,C++基础忘得太快)
入门:郭霖老师的《第一行代码》进阶:刘望舒.《Android进阶之光》进阶:任玉刚《Android开发艺术探索》自定义View: 启舰.《Android自定义控件开发入门与实战》博客:腾讯微信大佬@Carson_Ho
数据结构
算法
计算机网络
Linux操作系统
数据库
C++基础
总结C++的时候补上
JNI基础