公司倒闭,面试被怼,闭关2个月拿下头条offer(附学习方法)

前言

本人18年毕业于一所末流一本,学的计算机科学与技术专业,主要学的Android开发。毕业后进入了一家创业公司上班,本来一切都按部就班的进行着,可是天不遂人愿。

在2019年5月初,公司倒闭,无奈走上找工作的道路,不想自己平时图安逸,不思进取,再次找工作才发现,Android行业也不是站在风口上,猪也能吹上天的世道了.作为技术小菜的我,在找工作那段时间真是战战兢兢,被打击得信心全无.最后用了2个月的时间去复习和学习,历经了几个月的时间,最终拿到了今日头条的offer。

本篇文章记录下我的学习方法和面试经历,分享给需要的人.勉励自己要时时进步,才不会被淘汰.

面经

从老公司倒闭后开始准备面试的东西,在5月底开始投,投递的公司有:

  • 钉钉
    被捞+面试* 网易
    被捞+面试* 滴滴出行
    沉* 腾讯视频
    被捞+面试* 华为
    沉* 今日头条
    被捞+面试* 饿了么

钉钉、网易和腾讯视频都挂在了二面,今日头条是在复习了2个月后才去面试的,经过了3面(不包括HR面)拿到了offer。

钉钉面经

一面(50分钟)

  1. MVC具有什么样的优势,各个模块之间怎么通信,比如点击 Button 后 怎么通知 Model?
  2. 两个无限长度链表(也就是可能有环) 判断有没有交点
  3. UITableView的相关优化
  4. KVO、Notification、delegate各自的优缺点,效率还有使用场景
  5. 如何手动通知KVO
  6. Objective-C 中的copy方法
  7. runtime 中,SEL和IMP的区别
  8. autoreleasepool的使用场景和原理
  9. RunLoop的实现原理和数据结构,什么时候会用到
  10. block为什么会有循环引用
  11. 使用GCD如何实现这个需求:A、B、C 三个任务并发,完成后执行任务 D。
  12. NSOperation和GCD的区别
  13. CoreData的使用,如何处理多线程问题
  14. 如何设计图片缓存?
  15. 有没有自己设计过网络控件?

二面(40分钟)

  1. 怎么判断某个cell是否显示在屏幕上
  2. 进程和线程的区别
  3. TCP与UDP区别
  4. TCP流量控制
  5. 数组和链表的区别
  6. UIView生命周期
  7. 如果页面 A 跳转到 页面 B,A 的viewDidDisappear方法和 B 的viewDidAppear方法哪个先调用?
  8. block循环引用问题
  9. ARC的本质
  10. RunLoop的基本概念,它是怎么休眠的?
  11. Autoreleasepool什么时候释放,在什么场景下使用?
  12. 如何找到字符串中第一个不重复的字符
  13. 哈希表如何处理冲突

网易面经

一面(30分钟)

  1. TCP的三次握手说一下?为什么是三次握手?为什么是四次挥手?
  2. Service用过吗?生命周期说一下?当内存不足时Service被杀死了,如何重启这个Service。
  3. Fragment用过吗?Activity如何传参给Fragment?为什么用setArgument传参,而不是使用带有参数的构造器?
  4. 知道系统杀进程吗?如果栈中从底到顶现在是A,B,C,然后系统把应用杀了,重新点击,显示的是哪个Activity?这时如果C里面有Fragment是怎样恢复的?
  5. Android的持久化方式?ContentProvider自身是否存储数据?

二面(40分钟)

  1. 算法:实现String的endWith()方法。
  2. 创建线程的方式?线程同步方法?
  3. 垃圾回收机制说一下?
  4. 多态说一下?重载和重写说一下?
  5. Android启动模式说一下?如果我要实现网页一样的效果,需要使用哪个模式?
  6. Android的适配了解吗?
  7. 用过哪些第三方库?说一下Okhttp的优点?

腾讯视频面经

一面(40分钟)

  1. mmap + native 日志优化?
  2. 广播和 EventBus 的区别?
  3. 常用设计模式你了解哪些?
  4. 跨进程通信有哪些?
  5. 简单讲讲 binder 驱动吧?
  6. 跨进程传递大内存数据如何做?
  7. 说说 ConcurrentHashMap 的实现原理说下,初始化大小是多少?
  8. 启动优化怎么优化?
  9. 你写的 rxpay 和 rxlogin 具体怎么实现的?
  10. kotlin + fullter 方面的

二面(50分钟)

  1. 单例设计模式都写写,静态内部类是怎么保证线程安全的?
  2. synchronized 底层实现原理,ReentrantLock 公平锁与非公平锁。
  3. 主线程等待所有线程执行完毕,再执行某个特定任务怎么实现?原理和源码看过没?
  4. 自定义 view 的一般流程,要注意些什么如何优化,点击事件和长按事件分别是怎么实现的?
  5. 四种启动模式,在源码分析中的原理是怎样的?
  6. 讲讲 bindService 的过程,你当初是怎么优化后台服务进程的?
  7. 开发中你都用到了哪些设计模式?说说当时具体的场景。为什么你要用方法工厂,另外两种呢?
  8. RxJava 在使用过程中碰到了某些不友好的错误一般怎么解决?发现了内存泄露一般怎么解决分析,有没有碰到过系统服务内存泄露的问题?
  9. 给你个数 1 吧,比如 1000011 里面有几个 1 ?
  10. 快排了解不?最坏的情况是怎样?如果有大量重复数据怎么优化?

今日头条面经

一面(40分钟)

  1. hashmap实现原理;
  2. 自定义view的步骤;
  3. 给出一个activity的布局:activity里包含viewgroup1,viewgroup1里包含viewgroup2,viewgroup2里包含button,问touch事件的传递和处理机制;
  4. Looper和handler的关系;
  5. activity从后台进程切换到前台经历的生命周期;
  6. 有两个数字非常大已经超出了long型的范围,现在以链表的方式存储其中链表头表示最高位,例如1->2->3->4表示1234,请设计一个算法求出两数之和;

二面(50分钟)

  1. 怎样检测内存泄露,生产上怎么定位内存泄r>2、怎样定位native层叠内存泄r>3、bindservice和startservice的区别
  2. 怎样不让别人绑定我的service服务
  3. 音乐播放器怎样实现退出页面还可以播放
  4. contentprovider插入一条数据要做那些操作
  5. 数据库事务和普通操作的区别,自己怎样实现事务
  6. 内存泄露有哪些,handler,单例,webview,具体场景,怎样解决
  7. touch的事件传递

最后

上面这些公司都是时下最受欢迎的互联网大厂,他们的职级、薪资、福利也都讲的差不多了,相信大家都是有梦想和野心的人,心里多少应该都有些想法。

也相信很多人也都在为即将到来的金九银十做准备,也有不少人的目标都是这些公司。

我这边有不少朋友都在这些厂工作,其中也有很多人担任过面试官,上面的资料也差不多都是从朋友那边打探来的。除了上面的信息,我这边还有这些大厂近年来的面试真题及解析,以及一些朋友出于兴趣和热爱一起整理的Android时下热门知识点的学习资料

部分文件:


*。

部分文件:
[外链图片转存中…(img-CY8UKV1o-1720125350033)]
[外链图片转存中…(img-Bc0A464M-1720125350033)]
[外链图片转存中…(img-32rTWz6a-1720125350034)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值