前言本人18年结业于一所末流一本,学的盘算机科学与技术专业,主要学的Android开发。结业后进入了一家创业公司上班,原来一切都按部就班的举行着,可是天不遂人愿。
在2019年5月初,公司倒闭,无奈走上找事情的门路,不想自己平时图清闲,不思进取,再次找事情才发现,Android行业也不是站在风口上,猪也能吹上天的世道了.作为技术小菜的我,在找事情那段时间真是战战兢兢,被攻击得信心全无.最后用了2个月的时间去温习和学习,历经了几个月的时间,最终拿到了今日头条的offer。本篇文章记载下我的学习方法和面试履历,分享给需要的人.勉励自己要时时进步,才不会被淘汰.面经从老公司倒闭后开始准备面试的工具,在5月底开始投,投递的公司有:钉钉被捞+面试被捞+面试滴滴出行沉视频被捞+面试华为沉今日头条被捞+面试饿了么沉钉钉、和视频都挂在了二面,今日头条是在温习了2个月后才去面试的,经由了3面(不包罗HR面)拿到了offer。
钉钉面经一面(50分钟)MVC具有什么样的优势,各个模块之间怎么通信,好比点击 Button 后 怎么通知 Model?两个无限长度链表(也就是可能有环) 判断有没有交点UITableView的相关优化KVO、Notification、delegate各自的优缺点,效率另有使用场景如何手动通知KVOObjective-C 中的copy方法runtime 中,SEL和IMP的区别autoreleasepool的使用场景和原理RunLoop的实现原理和数据结构,什么时候会用到block为什么会有循环引用使用GCD如何实现这个需求:A、B、C 三个任务并发,完成后执行任务 D。NSOperation和GCD的区别CoreData的使用,如那边理多线程问题如何设计图片缓存?有没有自己设计过网络控件?二面(40分钟)怎么判断某个cell是否显示在屏幕上历程和线程的区别TCP与UDP区别TCP流量控制数组和链表的区别UIView生命周期如果页面 A 跳转到 页面 B,A 的viewDidDisappear方法和 B 的viewDidAppear方法哪个先挪用?block循环引用问题ARC的本质RunLoop的基本观点,它是怎么休眠的?Autoreleasepool什么时候释放,在什么场景下使用?如何找到字符串中第一个不重复的字符哈希表如那边理冲突面经一面(30分钟)TCP的三次握手说一下?为什么是三次握手?为什么是四次挥手?Service用过吗?生命周期说一下?当内存不足时Service被杀死了,如何重启这个Service。Fragment用过吗?Activity如何传参给Fragment?为什么用setArgument传参,而不是使用带有参数的结构器?知道系统杀历程吗?如果栈中从底到顶现在是A,B,C,然后系统把应用杀了,重新点击,显示的是哪个Activity?这时如果C内里有Fragment是怎样恢复的?Android的持久化方式?ContentProvider自身是否存储数据?二面(40分钟)算法:实现String的endWith()方法。
建立线程的方式?线程同步方法?垃圾接纳机制说一下?多态说一下?重载和重写说一下?Android启动模式说一下?如果我要实现网页一样的效果,需要使用哪个模式?Android的适配相识吗?用过哪些第三方库?说一下Okhttp的优点?视频面经一面(40分钟)mmap + native 日志优化?广播和 EventBus 的区别?常用设计模式你相识哪些?跨历程通信有哪些?简朴讲讲 binder 驱动吧?跨历程通报大内存数据如何做?说说 ConcurrentHashMap 的实现原理说下,初始化巨细是几多?启动优化怎么优化?你写的 rxpay 和 rxlogin 详细怎么实现的?kotlin + fullter 方面的二面(50分钟)单例设计模式都写写,静态内部类是怎么保证线程宁静的?synchronized 底层实现原理,ReentrantLock 公正锁与非公正锁。主线程等候所有线程执行完毕,再执行某个特定任务怎么实现?原理和源码看过没?自界说 view 的一般流程,要注意些什么如何优化,点击事件和长按事件划分是怎么实现的?四种启动模式,在源码分析中的原理是怎样的?讲讲 bindService 的历程,你当初是怎么优化后台服务历程的?开发中你都用到了哪些设计模式?说说其时详细的场景。
为什么你要用方法工厂,另外两种呢?RxJava 在使用历程中遇到了某些不友好的错误一般怎么解决?发现了内存泄露一般怎么解决分析,有没有遇到过系统服务内存泄露的问题?给你个数 1 吧,好比 1000011 内里有几个 1 ?快排相识不?最坏的情况是怎样?如果有大量重复数据怎么优化?今日头条面经一面(40分钟)hashmap实现原理;自界说view的步骤;给出一个activity的结构:activity里包罗viewgroup1,viewgroup1里包罗viewgroup2,viewgroup2里包罗button,问touch事件的通报和处置惩罚机制;Looper和handler的关系;activity从后台历程切换到前台履历的生命周期;有两个数字很是大已经超出了long型的规模,现在以链表的方式存储其中链表头表现最高位,例如1->2->3->4表现1234,请设计一个算法求出两数之和;二面(50分钟)怎样检测内存泄露,生产上怎么定位内存泄***r>2、怎样定位native层叠内存泄***r>3、bindservice和startservice的区别怎样不让别人绑定我的service服务音乐播放器怎样实现退出页面还可以播放contentprovider插入一条数据要做那些操作数据库事务和普通操作的区别,自己怎样实现事务内存泄露有哪些,handler,单例,webview,详细场景,怎样解决touch的事件通报怎样在子线程启动handler浮窗是怎么实现的,window是由什么治理的什么时候复写 measure layout drawmeasure方法是怎样将巨细通报给系统的自界说控件的时候,canvas的savecanvas和restorecanvas的作用home按键的事件是怎么处置惩罚的音量键是怎样通报的aidl的oneway的作用三面(1小时)算法题 两个栈实现行列算法题 输入一个数组,想一种方法让这个数组尽可能的乱序,保证功效能实现的情况下时间庞大度和空间庞大度尽可能的小,可使用随机数函数。(面试官最后说了 O(n)的时间庞大度能实现)写一个单例(自己写一种就行)ActivityA -> Activity B -> Activity A,Activity A 启动模式为 singleTask,Activity B 启动模式为通例模式,问 A 启动 B,B 又启动 A 的生命周期挪用顺序?你适才提到 onsaveinstancestate() ,说一下挪用时机,它用来干什么的。
onsaveinstancestate() 生存的谁人参数叫什么?Bundle 内里都放一些什么工具?怎么实现序列化?Parcelable 和 Serializable 有什么区别?数组和链表的区别HashMap 的结构以及原理相识 View 的绘制机制吗,能说一下吗我看你项目里用的 Fragment 能说一下 Fragment A 启动了 Fragment B,Fragment B 中按下返回键只退出 Fragment B 怎么实现。你另有什么要问的吗?面试心得1. 算法题怎么答面试官可能会问到你闻所未闻的算法,这时候你不应该自己瞎想,而是先和面试官把问题讨论清楚。要知道,通过相同弄明确庞大的问题也是一种能力,在和面试官交流的历程中,不仅仅可以搞清楚题目真正的意思是什么,还可以展现自己良好的交流相同能力。
所以千万不要因为紧张或者含羞而浪费这次大好的时机。有些题目似曾相识,可是暂时没有思路。这时候不妨告诉面试官,给我一些时间思考这个题。
然后不要急,不要慌,就当他不存在,拿出纸和笔逐步算(这充实说明晰面试戴耳机的重要性)。你一定要坚定一个信念:“任何一道稍微有难度的算法题,除非做过,否则一定是需要时间想的”。
所以,合理的摆设思考时间吧。如果十几分钟都想不出来,可以直接放弃。2. 遇到不会的问题怎么处置惩罚这个问题有可能是面试官居心说得迷糊不清,考察你的交流能力,也有可能是无意的,或者是你的明白方式泛起了偏差。
不管是以上哪种问题,你都应该先和面试官交流,直到你搞懂了面试官要问你什么,而不是根据自己的明白说了一堆无用的工具。举个例子,面试官可能会问了一道算法题:“如何判断两个无限长度的链表是否有交点?”。
对于“无限长度”可以有差别的明白,如果真的是有无穷多个节点,那显然这个问题是无法解决的。但如果链表仅仅是有环,那么还是可以解决的。如果面试官的本意是链表有环,但你错误的明白成了无穷多个节点,那么一定会导致无法回覆这个问题。
而且这并非能力不足,而是属于交流相同方面的失误,这也正是我想分享的“技巧”。3. 遇到真的不会的问题怎么处置惩罚遇到不会的问题坚决认可啊。如果是基本问题,好比问你哈希表怎么实现,你说不会,那么这次面试可能就悬了。
如果是有一定难度的问题,那么你认可不会,也是一种明智之举,究竟人无完人,一个问题不会并不能全盘否认一小我私家的能力。4.心态面试的时候一定要控制美意态,一个好的心态往往更容易拿到offer。就像我有次面试,因为心态没控制好,才面了30分钟不到就竣事了,所以如果面试前你心态没控制好,宁肯不去,也别抱着一个糟糕的心态去面试。学习方法1.多看一些实战项目视频2.多刷一些算法题因为一些大厂还是十分看重算法方面的,这里推荐大家刷《剑指offer》这本书。
3.刷书感受看书对提升很是显着,固然了还是要看书的内容干货多不多,这里分享下我看过的书:《Android自界说控件入门和实战》《谎话设计模式》《Andorid设计模式源码剖析》《深入明白JVM》《Android进阶解密》4.多看一些面经看面经能让你相识这个公司面试的一些情况,相识面试官喜欢问的问题,特别是近期的面经。最后因为互联网、IT行业是一个生长迅速,日新月异的行业,而我们这些法式员只有不停的去学习,去进步才气不被淘汰。上面我学习所用的视频、电子书籍和面试资料都可以分享给大家,需要的朋侪可以私信我【资料】免费领取如果这篇文章对大家有资助的话请点赞、关注、转发 谢谢!。
本文关键词:公司,倒闭,面试,被,bob综合体育官网登录,怼,闭关,2个月,拿下,头条
本文来源:bob综合体育网站-www.yuexiwl.com