网上有不少的面试题系列,Android学习路线系列,本次整理也是看下本身对Android的熟悉程度,有哪些本身会了,哪些本身还不会须要学习,以便于本身更好的提升本身html
(文章末尾附有相关参考文章,都写的特别好)java
java根类Object的方法说明
fangjian0423.github.io/2016/03/12/…android
java JVM虚拟机
blog.csdn.net/qq_41701956…git
Object类的equal和hashCode方法须要同时重写,为何? www.cnblogs.com/tiancai/p/9…
若是2个对象使用equals方法进行比较而且相同的话,那么这2个对象的hashCode方法的值也必须相等。 违反这一点产生的后果就是若是一个stu1实例是Student(“fo”, 11),stu2实例是Student(“fo”, 11),那么这2个实例是相等的,可是他们的hashCode不同,这样是致使哈希表中都会存入stu1实例和stu2实例,可是实际状况下,stu1和stu2是重复数据,只容许存在一条数据在哈希表中。因此这一点是很是重点的,再强调一下:若是2个对象的equals方法相等,那么他们的hashCode值也必须相等,反之,若是2个对象hashCode值相等,可是equals不相等,这样会影响性能,因此仍是建议2个方法都一块儿重写。github
HashMap原理,Hash冲突,并发集合,线程安全集合及实现原理 blog.csdn.net/ptsx0607/ar…面试
HashMap 和 HashTable 区别算法
HashCode 做用,如何重载hashCode方法数组
ArrayList与LinkList区别与联系缓存
GC机制安全
Java反射机制,Java代理模式
Synchronized原理
Volatile实现原理
死锁的四个必要条件 blog.csdn.net/yangquanhui…
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 占有且等待:一个进程因请求资源而阻塞时,对已得到的资源保持不放。
(3)不可强行占有:进程已得到的资源,在末使用完以前,不能强行剥夺。
(4) 循环等待条件:若干进程之间造成一种头尾相接的循环等待资源关系 存在一个进程等待序列{P1,P2,...,Pn},其中P1等待P2所占有的某一资源,P2等待P3所占有的某一 源,......,而Pn等待P1所占有的的某一资源,造成一个进程循环等待环。就像前面的过独木桥问题,甲等待乙 占有的桥面,而乙又等待甲占有的桥面,从而彼此循环等待。
怎么避免死锁
对象锁和类锁是否会互相影响
方法锁、对象锁、类锁的意义和区别
写一个单例模式,如何作到线程安全(双重加锁)
Java锁的种类: 公平锁、乐观锁、互斥锁、分段锁、偏向锁、自旋锁等
ThreadLocal的原理和用法
ThreadPool的用法和示例 —— 线程池的实现原理
开启线程的三种方式
wait()和sleep()的区别
join的用法
什么致使线程阻塞?
线程如何关闭?
run()和start()方法区别
进程和线程的区别
int、char、long各占多少字节数
引用类型
谈谈对java多态的理解
String、StringBuffer、StringBuilder区别
栈和队列
经典问题:海量数据的处理 (10亿个数中找出最大的10000个数 TOP K问题)
二叉树遍历(非递归)
查找树中两个节点的最低公共祖先
求二叉树中节点之间的最大距离
基础排序算法:重点 快排、归并排序、堆排序(大根堆、小根堆)
String 转 int
如何判断一个单链表有环
链表翻转
100 亿个单词,找出出现频率最高的单词。要求几种方案
经常使用数据结构简介
www.jianshu.com/p/fae032319… blog.fundebug.com/2018/08/27/…
数组和链表的区别 blog.csdn.net/qq_25806863…
实现LRU算法 www.jianshu.com/p/b49a11114…
求股票的最大利润 blog.csdn.net/program_dev…
输入字符串,输出对应的整数形式 www.cnblogs.com/wangnanhui/…
反转单向链表
blog.csdn.net/qq_26287435…
找出单向链表中倒数第K个节点,并删除 (1:遍历两次 2:用两个指针)
wiki.jikexueyuan.com/project/for…
检查链表是否有环,如有环的话,求出环的入口和环的长度 blog.csdn.net/u011388550/…
两个有序且无重复元素的整数数组,找出相同元素 www.kancloud.cn/maliming/le…
Android各个版本API的区别 mp.weixin.qq.com/s/uPKY372k1…
Activity-Window-View三者的差异 juejin.im/entry/59632…
Application生命周期
blog.csdn.net/maican666/a…
Android Activity生命周期
www.jianshu.com/p/fb44584da…
onStart()与onResume()有什么区别?
Android Activity启动模式
blog.csdn.net/linghu_java…
singleInstance和singleTask的应用场景 xiazdong.github.io/2015/03/08/…
service和activity怎么进行数据交互
Fragment的生命周期
Android Service、IntentService,Service和组件间通讯
如何保证Service不被杀死?如何保证进程不被杀死?
Service的开启方式
Android消息机制
www.jianshu.com/p/36a978b6c…
Looper.loop()为何不会阻塞主线程
Handler、Thread和HandlerThread的差异
Android 多线程的实现:Thread、HandlerThread、AsyncTask、IntentService、RxJava
ActivityThread工做原理
RecyclerView与ListView(缓存原理,区别联系,优缺点)
View的绘制原理,自定义View,自定义ViewGroup
getWidth()方法和getMeasureWidth()区别呢?
Asset目录与res目录的区别
序列化serializable和parcelable的区别
ANR产生的缘由是什么
Apk 打包流程梳理
Android 触摸事件机制
APK瘦身
Android进程间通信 aidl
Android Activity启动原理
Android AMS的了解
Android 进程间通信的原理
Android 模块化 组件化 插件化 移动端架构的了解
Android 性能优化
各类原理,经典第三方库源码系列(glide,OKHTTP,EventBus等等)
出了技术相关的知识外,咱们还须要额外准备一些东西
如下几篇关于写Android面试的文章都写的很好