面试如作战,我们看战争影视剧的时候,经常看到这些剧作往往主要聚焦于作战过程、战场战略,对战前准备给的篇幅往往很少。实际上,战前准备也是关键的一环,没有充足的粮草、车马、兵器的准备。别说赢得战争,投入战斗都不可能。
这个道理在面试中也是一样。如果不做面试准备,就犹如不磨刀枪上战场,胜负更多则靠运气。尤其是对于刚刚毕业的大学生来说,成功的面试,往往基于充分的准备。充足的准备,有可能做到十发九中,面试一家成一家。
那么面试之前,我们需要做哪些准备,才能做到胸有成竹呢?这个话题将从对于简历的准备、对面试公司的了解等方面来说。今天在这里给大家之后的面试提出3个走心的面试建议,希望对大家有帮助,也祝大家面试顺利~
经常会有朋友私聊我帮他看下简历,发现了一些共性问题;除此以外,我偶尔面试一些同学,有一些个人的感受分享给大家。
1.GC机制
垃圾回收需要完成两件事:找到垃圾,回收垃圾。 找到垃圾一般的话有两种方法:
新生代对象分为三个区域:Eden 区和两个 Survivor 区。新创建的对象都放在 Eden区,当 Eden 区的内存达到阈值之后会触发 Minor GC,这时会将存活的对象复制到一个 Survivor 区中,这些存活对象的生命存活计数会加一。这时 Eden 区会闲置,当再一次达到阈值触发 Minor GC 时,会将Eden区和之前一个 Survivor 区中存活的对象复制到另一个 Survivor 区中,采用的是我之前提到的复制算法,同时它们的生命存活计数也会加一。
这个过程会持续很多遍,直到对象的存活计数达到一定的阈值后会触发一个叫做晋升的现象:新生代的这个对象会被放置到老年代中。 老年代中的对象都是经过多次 GC 依然存活的生命周期很长的 Java 对象。当老年代的内存达到阈值后会触发 Major GC,采用的是标记整理算法。
2.JVM内存区域的划分,哪些区域会发生 OOM
JVM 的内存区域可以分为两类:线程私有和区域和线程共有的区域。 线程私有的区域:程序计数器、JVM 虚拟机栈、本地方法栈 线程共有的区域:堆、方法区、运行时常量池
其实除了程序计数器,其他的部分都会发生 OOM。
3.类加载过程
4.双亲委派模型
5.Java 中的集合类
6.HashMap 的原理
7.什么情况下 Java 会产生死锁,如何定位、修复,手写死锁
8.sleep 和 wait 的区别
9.join 的用法
10.volatile和synchronize的区别
11.Java中的线程池
12.线程通信
13.Java中的并发集合
14.Java中生产者与消费者模式
15.final、finally、finalize区别
16.Java 中单例模式
17.Java中引用类型的区别,具体的使用场景
18.Exception 和 Error的区别
19.volatile
1.http 状态码
2.http 与 https 的区别?https 是如何工作的?
3.TCP三次握手流程
1.进程间通信的方式有哪几种
AIDL 、广播、文件、socket、管道
2.广播静态注册和动态注册的区别
3.Android 性能优化工具使用(这个问题建议配合Android中的性能优化)
Android 中常用的性能优化工具包括这些:Android Studio 自带的 Android Profiler、LeakCanary、BlockCanary
Android 自带的 Android Profiler 其实就很好用,Android Profiler 可以检测三个方面的性能问题:CPU、MEMORY、NETWORK。
LeakCanary 是一个第三方的检测内存泄漏的库,我们的项目集成之后 LeakCanary 会自动检测应用运行期间的内存泄漏,并将之输出给我们。
BlockCanary 也是一个第三方检测UI卡顿的库,项目集成后Block也会自动检测应用运行期间的UI卡顿,并将之输出给我们。
4.Android中的类加载器
5.Android中的动画有哪几类,它们的特点和区别是什么
6.Handler 机制
7.Android 性能优化
8.Android 内存优化
9.Binder 机制
10.LruCache的原理
11.DiskLruCache原理
12.设计一个图片的异步加载框架
13.Android中的事件分发机制
14.View的绘制流程
15.Android 源码中常见的设计模式以及自己在开发中常用的设计模式
16.Android与 js 是如何交互的
17.热修复原理
18.Activity 启动过程
19.SparseArray 原理
20.图片加载如何避免 OOM
21.大图加载
1.OkHttp
2.Retrofit
3.RxJava
4.Glide
5.EventBus
1.手写快排
2.手写归并排序
3.手写堆以及堆排序
4.说一下排序算法的区别(时间复杂度和空间复杂度)
工作中解决了什么难题,做了什么有成就感的项目(这个问题一定会问到,所以肯定要做准备)
这个题库内容是比较多的,除了一些流行的热门技术面试题,如Kotlin,数据库,Java虚拟机面试题,数组,Framework ,混合跨平台开发,等
下载方法:点赞+关注后 点击【Android高级工程师进阶学习】即可领取!
hashmap底层原理,Android这些高端技术只有你还不知道,内容太过真实
原文:https://www.cnblogs.com/javaAlisa/p/15209500.html