Java⾯试突击⼿册(2022版)每⽇⼀刷,⾦三银四稳了
前⾔
春节⼀过⾦三银四就要开始了,我相信将会是⾯试求职的⾼峰时期,如果此时⼿⾥有份⾼质量的⾯试宝典,那么你将得⼼应⼿⾯对考官各种问题。虽然不敢保证你能应聘上⼼仪的职位,但是能保证看完这些内容你的收获将超乎你的想象! ⾯试准备
1.准备⼀份⾃⼰的⾃我介绍,⾯试的时候根据⾯试对象适当进⾏修改(突出重点,突出⾃⼰的优势在哪⾥,切忌流⽔账);
2.注意随⾝带上⾃⼰的成绩单和简历复印件;(有的公司在⾯试前都会让你交⼀份成绩单和简历当做⾯试中的参考。)
3.如果需要笔试就提前刷⼀些笔试题,⼤部分在线笔试的类型是选择题+编程题,有的还会有简答题。(平时空闲时间多的可以刷⼀下笔试题⽬(⽜客⽹上有很多),但是不要只刷⾯试题,不动⼿code,程序员不是为了考试⽽存在的。)另外,注意抓重点,因为题⽬太多了,但是有很多题⽬⼏乎次次遇到,像这样的题⽬⼀定要搞定。
4.提前准备技术⾯试。 搞清楚⾃⼰⾯试中可能涉及哪些知识点、那些知识点是重点。⾯试中哪些问题会被
经常问到、⾃⼰改如何回答。(强烈不推荐背题) 第⼀: 通过背这种⽅式你能记住多少?能记住多久? 第⼆: 背题的⽅式的学习很难坚持下去!
5.⾯试之前做好定向复习。 也就是专门针对你要⾯试的公司来复习。⽐如你在⾯试之前可以在⽹上有没有你要⾯试的公司的⾯经。
真题 内容涵盖:java⽅⾯、Android⽅⾯、数据结构⽅⾯、计算机⽹络⽅⾯、Kotlin⽅⾯等,由于篇幅限制下⾯只能展⽰⼀部分资料,需要完整版资料的⼩伙伴⿇烦点赞关注⽀持⼀下,后台私信回复“⼿册”即可获取免费领取⽅式
第⼀章 Java ⽅⾯
(⼀)Java 基础部分
抽象类与接⼝的区别?
分别讲讲 final,static,synchronized 关键字可以修饰什么,以及修饰后的作⽤?
请简述⼀下String、StringBuffer和StringBuilder的区别?
“equals”与“==”、“hashCode”的区别和使⽤场景?
Java 中深拷贝与浅拷贝的区别?
谈谈Error和Exception的区别?
什么是反射机制?反射机制的应⽤场景有哪些?
谈谈如何重写equals()⽅法?为什么还要重写hashCode()?
Java 中 IO 流分为⼏种?BIO,NIO,AIO 有什么区别?
谈谈你对Java泛型中类型擦除的理解,并说说其局限性?
String为什么要设计成不可变的?
说说你对Java注解的理解?
谈⼀谈Java成员变量,局部变量和静态变量的创建和回收时机?
请说说Java中String.length()的运作原理?
(⼆)Java 集合
谈谈List,Set,Map的区别?
谈谈ArrayList和LinkedList的区别?
请说⼀下HashMap与HashTable的区别
谈⼀谈ArrayList的扩容机制?
HashMap 的实现原理?
请简述 LinkedHashMap 的⼯作原理和使⽤⽅式?
谈谈对于ConcurrentHashMap的理解?
(三)Java 多线程
Java 中使⽤多线程的⽅式有哪些?
说⼀下线程的⼏种状态?
如何实现多线程中的同步?
谈谈线程死锁,如何有效的避免线程死锁?
谈谈线程阻塞的原因?
请谈谈 Thread 中 run() 与 start() 的区别?
synchronized和volatile关键字的区别?
如何保证线程安全?
谈谈ThreadLocal⽤法和原理?
Java 线程中notify 和 notifyAll有什么区别?
什么是线程池?如何创建⼀个线程池?
谈⼀谈java线程常见的⼏种锁?
谈⼀谈线程sleep()和wait()的区别?
什么是悲观锁和乐观锁?
什么是BlockingQueue?请分析⼀下其内部原理并谈谈它的使⽤场景?谈⼀谈java线程安全的集合有哪些?
Java中为什么会出现Atomic类?试分析它的原理和缺点?
说说ThreadLocal的使⽤场景?与Synchronized相⽐有什么特性?
由于篇幅限制下⾯只能展⽰⼀部分资料,需要完整版资料的⼩伙伴⿇烦点赞关注⽀持⼀下,后台私信回复“⼿册”即可获取免费领取⽅式
(四)Java 虚拟机
谈⼀谈JAVA垃圾回收机制?
回答⼀下什么是强、软、弱、虚引⽤以及它们之间的区别?
简述JVM中类的加载机制与加载过程?
JVM、Dalvik、ART三者的原理和区别?
请谈谈Java的内存回收机制?
JMM是什么?它存在哪些问题?该如何解决?
第⼆章 Android ⽅⾯
(⼀)Android 四⼤组件相关
Activity 与 Fragment 之间常见的⼏种通信⽅式?
LaunchMode 的应⽤场景?
BroadcastReceiver 与 LocalBroadcastReceiver 有什么区别?
对于 Context,你了解多少?
IntentFilter是什么?有哪些使⽤场景?
谈⼀谈startService和bindService的区别,⽣命周期以及使⽤场景?
Service如何进⾏保活?
简单介绍下ContentProvider是如何实现数据共享的?
说下切换横竖屏时Activity的⽣命周期?
Activity中onNewIntent⽅法的调⽤时机和使⽤场景?
Intent传输数据的⼤⼩有限制吗?如何解决?
说说ContentProvider、ContentResolver、ContentObserver 之间的关系?
说说Activity加载的流程?
(⼆)Android 异步任务和消息机制
HandlerThread 的使⽤场景和⽤法?
IntentService 的应⽤场景和使⽤姿势?
AsyncTask 的优点和缺点?
谈谈你对 Activity.runOnUiThread 的理解?
⼦线程能否更新 UI?为什么?
谈谈 Handler 机制和原理?
为什么在⼦线程中创建 Handler 会抛异常?
试从源码⾓度分析 Handler 的 post 和 sendMessage ⽅法的区别和应⽤场景?Handler 中有 Loop 死循环,为什么没有阻塞主线程,原理是什么?
(三)Android UI 绘制相关
Android 补间动画和属性动画的区别?
Window和DecorView是什么?DecorView⼜是如何和Window建⽴联系的?
简述⼀下 Android 中 UI 的刷新机制?
LinearLayout, FrameLayout, RelativeLayout 哪个效率⾼, 为什么?
谈谈Android的事件分发机制?
谈谈⾃定义View的流程?
针对RecyclerView你做了哪些优化?
谈谈如何优化ListView?
谈谈⾃定义LayoutManager的流程?
什么是 RemoteViews?使⽤场景有哪些?
谈⼀谈获取View宽⾼的⼏种⽅法?
谈⼀谈插值器和估值器?
getDimension、getDimensionPixelOffset 和 getDimensionPixelSize 三者的区别?请谈谈源码中StaticLayout的⽤法和应⽤场景?
有⽤过ConstraintLayout吗?它有哪些特点?kotlin修饰符
关于LayoutInflater,它是如何通过 inflate ⽅法获取到具体View的?
谈⼀谈Fragment懒加载?
谈谈RecyclerView的缓存机制?
请谈谈View.inflate和LayoutInflater.inflate的区别?
请谈谈invalidate()和postInvalidate()⽅法的区别和应⽤场景?
谈⼀谈⾃定义View和⾃定义ViewGroup?
谈⼀谈SurfaceView与TextureView的使⽤场景和⽤法?
谈⼀谈RecyclerView.Adapter的⼏种刷新⽅式有何不同?
谈谈你对Window和WindowManager的理解?
谈⼀谈Activity,View,Window三者的关系?
有了解过WindowInsets吗?它有哪些应⽤?
Android中View⼏种常见位移⽅式的区别?
为什么ViewPager嵌套ViewPager,内部的ViewPager滚动没有被拦截?请谈谈Fragment的⽣命周期?
请谈谈什么是同步屏障?
谈⼀谈ViewDragHelper的⼯作原理?
谈⼀谈屏幕刷新机制?
(四)Android 性能调优相关
谈谈你对Android性能优化⽅⾯的了解?
⼀般什么情况下会导致内存泄漏问题?
⾃定义 Handler 时如何有效地避免内存泄漏问题?
哪些情况下会导致oom问题?
ANR 出现的场景以及解决⽅案?
谈谈Android中内存优化的⽅式?
谈谈布局优化的技巧?
Android 中的图⽚优化⽅案?
Android Native Crash问题如何分析定位?
谈谈怎么给apk瘦⾝?
谈谈你是如何优化App启动过程的?
谈谈代码混淆的步骤?
谈谈如何对WebView进⾏优化?
如何处理⼤图的加载?
谈谈如何对⽹络请求进⾏优化?
请谈谈如何加载Bitmap并防⽌内存溢出?