本文共 2001 字,大约阅读时间需要 6 分钟。
我觉得每一个程序员的梦想大概就是能够找一份大厂的 Offer,我觉得这很正常,这并不是我们的饭后谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司,如果说能够在这样的公司锻炼几年,相信对自己能力的提升还是非常大的。但不是每个人都能够进入大厂的,这往往取决于我们的能力、学历、面试表现等因素。
现在面试大公司你说你没有 Android Jetpack、协程、 Jetpack Compose 、Flutter 等理论等等已然大厂面试所必须的知识。但是,你真进入大厂了,可能几年都用不上这些知识,还是老老实实去写CRUD
内存泄漏即 ML (Memory Leak)
指 程序在申请内存后,当该内存不需再使用 但 却无法被释放 & 归还给 程序的现象
内存泄漏的原因归根到底就是当需要被回收变量的内存被其他变量引用持有,导致内存回收失败
常见的原因有:
原因1:非静态内部类/匿名类 Handler
持有外部的Activity/Fragment
对象的引用,导致Activity/Fragemnt
被销毁的时候没有被回收
解决方案:
WeakReference
)持有Activity
引用(静态类默认不持有外部的引用)Activity/Fragment
)结束生命周期时,清空Handler队列原因2:非静态内部类的实例(对象)
= 静态实例
(其生命周期 = 应用的生命周期)
解决方案:
原因3:多线程 工作线程正在处理任务时外部类需要销毁,此时工作线程持有外部类的引用导致无法被回收
解决方案:
原因:集合类添加元素之后持有集合元素的引用,导致该集合元素不可被回收,导致内存泄漏
解决方案:
原因:资源对象使用后未关闭,在Activity/Fragemnt销毁时没有关闭/注销这些资源,将导致无法回收 例如:广播BraodcastReceiver
、文件流Fire
、图片资源Bitmap
、数据库游标
等
解决方案:
Activity
销毁时及时关闭/注销资源原因:Static关键字修饰成员变量的生命周期 = 应用的生命周期 例如 private static Context mContext = context
那么context上下文对应的Activity
则无法被回收
解决方案:
原因1:Context:当拥有Activity context
的引用的对象仍在使用,则该Activity
需要销毁时无法回收
解决方案:
context
的引用不要超过它的生命周期ApplicationContext
代替原因2:WebView:不再使用WebView对象后没有及时销毁,导致内存占用
解决方案:
WebView
对象进行销毁原因3:Adapter:滑动ListView、RecycleView获取新View时 都在getView()中重新实例化一个View对象,浪费资源,使内存占用越来越大
解决方案:
convertView
ViewHolder
希望大家能有一个好心态,想进什么样的公司要想清楚,并不一定是大公司,我选的也不是特大厂。当然如果你不知道选或是没有规划,那就选大公司!希望我们能先选好想去的公司再投或内推,而不是有一个公司要我我就去!还有就是不要害怕,也不要有压力,平常心对待就行,但准备要充足。最后希望大家都能拿到一份满意的 offer !如果目前有一份工作也请好好珍惜好好努力,找工作其实挺累挺辛苦的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
F%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)
[外链图片转存中…(img-ENDw2IjI-1614573413658)]
转载地址:http://zlrlf.baihongyu.com/