历经一年准备我终于进大厂了!(学习总结 -&-BAT 面试分享
App 的启动过程。
Android 优化方法。
如何防止内存泄漏?
Android 中弱引用与软引用的应用场景。
Bitmap 的四种属性,如何加载大图(inJustDecodeBounds)。
View 与 View Group 分类。自定义 View 过程:onMeasure()、onLayout()、onDraw()。
View 刷新机制和绘制流程。
Activity、Window、View 的联系和理解。
invalidate 和 requestLayout 的区别及使用。
Touch 事件分发机制和冲突处理。
Android IPC:Binder 原理。
Android5.0(UI 库)、6.0(权限)、7.0 特性。
Android 这块比较注重项目经验和平时学习的积累。《Android 开发艺术探索》《深入理解 ANDROID 卷 3》这两本书可以对 Android 有比较全面的认识和理解。
JVM
Java 运行时数据区域,导致内存溢出的原因。
对象创建、内存布局,访问定位等。
GC 的判定方法。
垃圾收集算法和运作原理。
内存分配与回收策略(Eden,survival from to,老年代)。
Class 文件结构(常量池)。
类加载过程。
类加载器(双亲委派模型)。
运行时栈帧结构(主要是局部变量表,理解栈堆)。
Java 泛型,自动拆箱,条件编译等多种语法糖。
Java 内存模型结构(主内存和工作内存)及操作,原子性可见性和有序性等。
Java 线程安全涉及的概念和分类。
《深入理解 Java 虚拟机 第二版》基本涵盖目前市场主流的 jvm 面试问题。
Java 线程
volatile 的内存语义和应用。
Java 重排序和顺序一致性。(as-if-serial 和 happens-before)
线程的状态和优先级。
启动线程和安全的终止线程。(interrupt)
ThreadLocal 的使用
Java 中的锁(偏向锁,轻量锁,重量级锁)
Java 重入锁 ReentrantLock 和 Condition。
Synchronized 和锁的等级(方法锁、对象锁、类锁)。
Synchronized 的 wait(sleep 的区别)和 notify 运行过程。
CAS 介绍。(compare and swap)
Java 中的并发工具(CountDownLatch,CyclicBarrier 等)
Java 线程池的使用和原理(模型)。
Java 生产者和消费者模型。
关于线程和并发这块方面的知识,我个人还是推荐先阅读《Java 并发编程的艺术》,这本书比较好上手。再通过《Java 高并发程序设计》和《Java 并发编程实战》深入理解。
Java 集合
List、Set、Map 的区别
ArrayList、LinkedList、Vector 的区别。
CopyOnWriteArrayList 的了解。
HashMap 和 HashTable 的区别。
HashMap 和 ConcurrentHashMap 的区别,HashMap 的底层源码。
TreeMap、HashMap、LindedHashMap、ArrayMap 的区别。
Collection 包结构,与 Collections 的区别。
Java 集合主要考验对集合的使用和认识,一般都是以 HashMap 下手,问增删改查方法及内部原理。集合这块暂时没有好的书本推荐。只能在网上了解。
网络
TCP 与 UDP 的区别。
TCP 和 UDP 报文结构。
TCP 的三次握手与四次挥手过程。
TCP 可靠传输原理实现(滑动窗口)。
TCP 拥塞控制。
TCP 流量控制。
Http 的报文结构。
Http 的状态码。
Http 的请求方法。
Http1.1 和 Http1.0 及 2.0 的区别
Http 长连接。
Cookie 与 Session 的作用和原理。
Https 加密原理。
网络这方面关于 tcp/udp 的可以阅读《计算机网络 第七版》的第五章运
输层部分。Http 推荐《图解 HTTP》
数据结构和算法
目前算法还处于蓝海状态,算法和数据结构是需要日积月累慢慢修炼的内功心法,已经入手《算法 第 4 版》准备慢慢啃。
如果已经有算法基础的同学可以买《剑指 offer》《编程之美》刷刷题。
写在最后
书籍是进步的阶梯。我之所以比较推荐用看书的方法来学习主要的原因是 : 书籍能够比较系统全面的了解某个知识。也就是可以建立知识体系。
『不积跬步无以至千里,机会是留给有准备的人。』
但是技术从来都不只是学习书本,书指明了学习的前进之路,但是想要真正有所进步需要把书中的内容用于大量实战,我也在持续不断学习的道路上奋力奔跑,希望和给为一起持之以恒,最终拿到令我们自己心满意足的 Offer,开发出能真正改变数万人生活的好应用,诸君共勉。
最后为了帮助大家深刻理解 Android 相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的 24 套腾讯、字节跳动、阿里、百度 2019-2020 面试真题解析,我把技术点整理成了视频和 PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
还有?高级架构技术进阶脑图、Android 开发面试专题资料?帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
点击:
评论