来源:Android校招复习资料整理 - huachao1001的专栏
作者:huachao1001(转载已获得作者授权)
建议网友先看这篇面试经历↓↓↓↓
腾讯/华为/网易 2017年秋季校招面试经历!滴滴/乐视/涂鸦已拿offer
在10月份开始就没有再参与校招了,面试过程真的很累,有时现场等面试一等就是几个小时。加上毕业论文开题的压力,所以没有继续参加各个公司笔面试了。过去几个月中,复习时也曾经到处搜资料、搜真题。毕竟从小到大考试都是有教科书复习,有老师划重点。现在找工作都没有这些,只有靠自己。所以特别理解准备找工作的小伙伴们空有好好复习的决心,花了很多时间却没有复习多少知识,因为在搜资料过程需要很多时间。而我个人比较喜欢电子资料,所以我在整理资料的时候都是以电子档的形式存储。为了更方便查看,做了一个网站,托管在GitHub。可以点击这个地址查看:华超的主页**。
这里强调一下,里面的内容都是来自互联网,难免存在错误。错误不仅仅是文字上的错误,也可能是本身的解释都是错的。或许此时你可能觉得是不是里面大部分内容都是博主随便复制粘贴的,请放心,里面内容是我自己整理的,并不是完全复制粘贴,绝大部分是我用自己的理解重新写上去的里面的内容是我自己复习的资料,我不可能对自己不负责。只是想让大家知道,对里面的内容不要抱着完全正确的态度。
前面说到,复习资料存放在:华超的主页。因为数据存放是在第三方网站,用的是免费套餐,允许每个月API访问次数为300万次。所以,如果当月访问量太高的话,当月次数用完,月底可能就无法打开了。如果有小伙伴有云服务器资源的话,可以私信我,我可以把数据转移过去。下面说一说我复习的几个月用到的资源,跟大家分享一下。
1.复习时间
2016年6月份开始准备,不断刷题、买书、逛帖子。一直持续到8月中旬,其实复习时间并不是特别长,主要是把关键的知识复习好。
2.基础知识
2.1 Java基础
- ArrayList、LinkedList、Vector区别
- BlockingQueue与CountDownLatch
- Collections与Arrays
- Exception与Error包结构,OOM,SOF你遇到哪些情况?
- HashCode作用
- Java 1.7和Java 1.8新特性
- Java NIO
- Java基本数据类型及其相关操作
- Java的四种引用,强弱软虚,用到的场景
- Map、Set、List、Queue、Stack的特点与用法
- Map相关子类区别
- Object公有方法以及wait和sleep区别
- Override与Overload区别
- String相关内容学习
- foreach与for循环效率对比
- interface与abstract类的区别
- static关键字
- synchronized、lock、reentrantLock区别
- 不同情形下return和finally的执行顺序
- 关键字:transient、volatile
- 反射原理及应用
- 泛型特点及其类型转换
- 生产者消费者问题的五种实现
- 线程以及ThreadLocal
- 线程池的使用
- 解析XML的DOM与SAX以及PULL区别
- 锁的等级:方法锁、对象锁、类锁
- 面向对象的的特征和含义及多态实现原理
2.2 Android基础
- 在AndroidStudio中自定义Gradle插件
- Activity与Fragment的生命周期
- Activity卡顿原因
- Activity启动过程
- Activity四种启动模式与IntentFilter匹配规则
- Activtiy的状态保存
- Android 7 .0、6.0、5.0新特性
- Android内存优化方法
- Android动画
- Android文件缓存方法
- Android长连接,怎么处理心跳机制
- Asset与res/raw,res/drawable
- AsyncTask原理与使用
- Bitmap相关
- ContentProvider用法
- IntentService
- Json相比XML优劣势
- Looper、Handler、MessageQueue
- Merge与ViewStub布局标签
- OkHttp
- Service相关
- Sqlite的基本操作
- UIL原理解析
- Volley原理解析
- Zygote进程启动过程
- 启动Activity的几种方式
- 如何保证Service不被Kill
- 如何加速启动Activity
- 怎样退出终止App
- 插件化原理(以DL框架为例)
- 注册广播的两种方式
- 热补丁技术概括
- 自定义View,有这一篇就够了
- 通过自定义Gradle插件修改编译后的class文件
2.3 数据结构
- 各种排序算法复杂度对比
- 排序算法
- 数据结构基本概念及复杂度分析
2.4 操作系统
- IPC几种通信方式
- 什么是虚拟内存
- 死锁的必要条件,怎么处理死锁
- 段存储,页存储,段页存储
- 虚拟地址、逻辑地址、线性地址、物理地址的区别
- 进程与线程
- 银行家算法
2.5 计算机网络
- 3次握手和4次挥手过程
- HTTP响应报文格式及各种响应码
- HTTP请求报文格式
- Http1.1和Http1.0的区别
- Http怎么处理长连接
- IP地址分类
- OSI与TCP/IP各层的结构与功能
- Ping的整个过程。ICMP报文是什么?
- TCP与UDP区别及其各自优缺点
- TCP和UDP数据报格式
- TCP拥塞控制和流量控制
- http与https区别
- 打开一个网页,整个过程使用到哪些协议
- 滑动窗口与回退N针协议
- 路由器与交换机区别
2.6 数据库
- 关系数据库基本概念
- 关系模式的规范化
- 函数依赖与候选码的定义
- 数据库中数据查询
- 数据库查询优化
- 数据的添加、删除、修改
- 表的创建、修改表结构、删除表
2.7 JVM
- CAS是什么?
- GC收集器有哪些?
- GC的三种收集方法
- 内存模型以及分区
- 判断一个对象是否存活
- 双亲委派模型
- 对象的创建、内存布局、对象的访问定位
- 新生代老年代内存划分比例及其各自特点
- 类加载的五个过程
- 静态分派和动态分派
3.看过的书
- 任玉刚的《Android开发艺术探索》
- 周志明的《深入理解java虚拟机》
- 何红辉与关爱明的《Android源码设计模式解析与实战》
- 考研用的辅导书,当初用的是王道论坛编写的《数据结构》、《操作系统》、《计算机网络》、(计算机组成原理没去复习)。以及武汉大学编写的《数据库原理与技术》。
- 左程云的《程序员代码面试指南》
- 《剑指offer》
- 《Java编程思想》(作为“字典”查看)
4.经常浏览的网站
- Github:Build software better, together
- CSDN:博客频道 - CSDN.NET
- 牛客网(很多可以练手的算法题目、很多真题、很多面经):牛客网-专业IT笔试面试备考平台,最全C++JAVA前端求职题库,全面提升IT编程能力**
5.写在最后
- 再次声明电子资料地址:华超的主页
- 好多小伙伴加了我Q为好友,但是提的问题很多是一样的,博主时间精力有限,为了方便小伙伴们的讨论,特地建立一个讨论群(Android开发交流群 340496711),欢迎小伙伴们加入。
更多精选干货,请关注:极乐科技