闭关在家37天“吃透”这份345页PDF拿下百度,字节跳动.四家Offer

写在开篇

个人情况介绍/闲话:

先介绍一下自己的背景,北航本硕,学习成绩中上,有两个学科竞赛奖项,一篇SCI。计算机方面,没有实习,只有一个略微相关的项目能写到简历里面。专业知识全靠自学,所以过程也异常痛苦。

准备时间从201年寒假开始,到2019年八月底结束,前后跨度不到一年。在这期间,互联网总共投递20多份简历,笔试8次,面试9次,5家单位给出明确录用意向,最终的结果比自己的预期理想。

2022年8月已近尾声,目前互联网方向拿到的offer有百度,网易,字节跳动,美团点评。距离毕业答辩还有段时间,写写我的学习进阶之路。

百度,字节跳动,美团点评,网易面试题和面试经历

百度核心面试题

  • 百度一面 1h

自我介绍

项目介绍

  • 编码规范有用吗?

Android

  • Android四大组件安全性

  • Activity启动模式

  • IntentFilter匹配规则,action和category区别?

  • Handler 阻塞为什么不卡死?

  • 点击事件分发机制,onTouchEvent返回false? dispatchTouchEvent返回false?

  • Looper

  • 对象池,手写对象池实现

  • ContentProvider原理

  • sp支持跨进程么?怎么解决跨进程,怎么实现进程同步

  • 帧动画实现: 100张图,200ms显示一张,读取一张图要400ms,怎么解决避免卡顿(多线程读)

  • Bitmap内存复用限制条件

  • 线程时间的分配原理

  • 百度二面 45min

项目

  • 梳理项目
  • 难点
  • 技术框架

算法题

  • 手写二分法
  • 电梯状态机设计

优缺点

  • 优点

  • 缺点

  • 专业

  • 百度三面 45min

技术

  • 最长公共子串
  • 类加载机制
  • okhttp原理
  • 热修复原理

其余闲聊

  • 优点缺点
  • 大学遗憾
  • 组织哪些活动
  • 长期坚持的事情
  • 专业去向

百度,网易,字节跳动,美团点评面试题答案:

因篇幅问题,面试题答案整理在pdf文档里,需要面试题答案的,**私信【面试】**即可免费获取~

  • 网易核心面试题

  • 网易技术一面 1h

自我介绍

项目介绍

  • 华为解bug映像最深的

Android

  • TouchEvent传递过程onTouchEvent返回flase怎么办
  • 怎么设计缓存
  • Android数据持久化
  • 数据库怎么批处理(原理)
  • SP支不支持多线程?SP怎么实现多线程
  • View绘制过程
  • Handler消息机制

Java

  • B线程怎么实现等待A线程完成工作
  • 线程怎么结束工作 Java结束线程的三种方法
  • Java哪些方法支持中断
  • 设计一个有限资源的请求
  • 怎么设计对象池(对象的存与放回)
  • 线程池的线程什么时候创建
  • Java中的锁
  • 可重入锁性能

笔试题

  • 两个数组交换一个值,让和相等,找到这两个值

网易技术二面 1h

自我介绍

华为实习

  • 参与的项目
  • 解的bug
  • 参与的编程规范说一下
  • Lint工具?

设计模式

  • 单例模式
  • volatile关键字原子性

Android

  • 进程间通信方式(与linux进程间通信区别)
  • Socket怎么验证安全性
  • 广播(全局 本地区别)
  • 怎么实现文件的多进程通讯(A进程改了文件怎么通知B进程读取)
  • 二级缓存怎么设计(网络 数据库 view间关系)

View

  • Activivty生命周期
  • onSaveInstanceState onRestoreInstanceState区别,调用时机
  • 广播注册应该在Activity哪个生命周期里
  • 怎么统计onCreate的次数
  • Fragment与Activity区别
  • Fragment生命周期管理
  • Fragment与ViewPager怎么做到重复加载
  • View绘制过程 MeasureSpec的三种模式
  • Framelayout LinearLayout ReativeLayout怎么做到View在右下
  • margin padding区别
  • gone invisible的区别
  • requestLayout、invalidate与postInvalidate区别
  • Android动画 怎么取消循环动画 repeat模式
  • drawable与view区别 有哪些drawable

网易技术三面 50min

自我介绍

项目介绍(不用说太细)

Android

  • 图片传输过程中URL加上默认大小如果是wrap_content怎么办
  • 图片相关缓存,编码,内存复用
  • svg (其他图片格式)
  • drawable mutate了解不
  • okhttp 桥接拦截器和缓存拦截器
  • 设计自定义DNS解析器
  • 打点系统设计:写文件过程中会有buffer,此时进程被杀怎么办,怎样设计日志系统 打点日志被用户篡改怎么办,保证日志安全性
  • 磁盘内存映射原理
  • 有没有看过开源打点框架
  • 平时开发有没有遇到过资源复用
  • 最近了解啥Android新动向不
  • 自己学习计划

字节跳动核心面试题

一面 60min

  • 一面侧重考察基本的计算及原理和Android基础机制,大部分都忘记了,发几个能记住的吧* 1.自我介绍,大概就是说些简历上没有的亮点还有跳槽原因等,从各个方面彰显自己优势和技术* 2.手写代码* (1)计算View树上所有view的数量* (2)参数ViewGroup* (3)补全空方法返回view数量(就是数据结构多叉树递归层序遍历+Android View基本api调用)* 3.主线程Looper一直循环查消息为何没卡主线程?* 4.RecyclerView相对ListView区别?* 5.好像还有Bitmap resize相关,就是设置option,然后decode等等等等吧* 6.用MultiDex解决何事?* 7.其根本原因在于?* 8.Dex如何优化?* 9.主Dex放哪些东西?* 10.主Dex和其他Dex调用、关联?* 11.Odex优化点在于啥?* 12.Dalvik和Art虚拟机区别?* 13.多渠道打包如何实现(Flavor、Dimension应用)?* 14.从母包生出渠道包实现方法?渠道标识替换原理?* 15.Android打包哪些类型文件不能混淆?* 16.Retrofit主要实现机制?* 17.动态静态区别?* 18.思维、架构:模块化怎么做的?怎么设计的?* 19.接口发现暴露怎么做?* 20.基于什么思想?* 21.MVC、MVP、MVVM应用和彼此本质区别?

二面 50min

  • 这面上来大概介绍了下自己,然后问了点我用过的东西比如Glide缓存特点?随后:你擅长Android中哪个方向呢?这问题我其实是按Android UI动画方面和移动端后台交互方案制定来预想过的,然鹅说完他挑了Android UI,噩梦就开始嘞- -直接他出效果我来想方案做。* 1.你看我这手机上这个launcher里应用抽屉(就是很多ROM都有的把很多APP管理归类的二级菜单功能)他在这ROM前一版是有个毛玻璃效果背景的,从系统ROM角度说下怎么做吧?* 2.UI相关的两个大问题:实时的水面倒影效果怎么做?这里面实时更新的UI性能如何保证?(我也没做过,估计面试官也知道,所有就说了一下思路啥的,最后也认可了我的思路策略以及知识迁移解决问题能力吧)* 3.偏UI基础的考察:Measure、Layout、draw大流程、绘制顺序,基于这些说下TagLayout(FlowLayout)怎么写?* 4.算法题:俩线程分别持续打印奇数和偶数,实现俩线程的交替打印(从小到大)

三面

  • 最开始还是自我介绍,二面虐惨了,所以感觉三面轻松多了* 1.算法题解决个实际问题* 2.设计个IM客户端以及数据库架构,架构每一层都是啥,互相怎么交互工作?

  • HR面

  • 这面就是聊天,问问跳槽原因、个人爱好、个人职业规划、目前薪酬、跳槽薪酬要求,福利同步一下(大概就这些了)

美团核心面试题

一面 1h

  • 事件分发
  • 自定义view
  • 给了个布局问你的实现方式
  • 有没有了解过新的布局
  • 有没有了解过新的布局
  • 实习经历
  • Android布局优化
  • 过度绘制及优化
  • 讲讲你认为你Android里理解最深的点
  • 了解过framework吗
  • 讲讲二叉树前中后序遍历
  • 数据库 写了个简单的sql 触发器
  • 类加载的过程
  • kotlin扩展方法 扩展属性
  • 看过哪些开源库(聊了聊retrofit)
  • 实习过程中最有成就感的事
  • 算法 反转链表(没写出来 我是个傻子吧) 删除公共字符串 冒泡排序怎么排的 稳定吗

一面完感觉还不错能预料到会有二面,问的都比较中规中矩

二面 50min

  • 实习经历 做了哪些需求 有什么收获 对前人留下的代码有什么想法,怎么解决的
  • Android 滑动时间冲突解决 handler原理 Android跨进程通信 Activity生命周期 Android为啥要分四大组件 弹一个dialog时Activity生命周期变化 onstart onresume分别执行什么类型的业务
  • Java 手写单例 hashmap源码 多线程,锁
  • 操作系统 进程和线程的区别
  • 算法 之字形打印二叉树(又没写出来 我是***)

面的时候刚从天津坐车回来,头有点晕,感觉有点拉跨,答得很一般,没想到还有三面

三面 1h

  • Java 封装继承多态,重点说理解及应用 static 重写和重载的区别、理解及应用 hashmap底层,把面试官当小白给面试官讲
  • Android 四大组件的理解 activity生命周期、横竖屏生命周期、有没有不让activity销毁的方法 启动模式 两种service有啥区别 service执行耗时操作会咋样、咋解决 intentservice底层 service保活 broadcastreciver权限(不会) Android跨进程方式 intent底层是怎么跨进程的 常用布局,重点说理解及应用 Android动画有哪几种,有没有底层研究 自定义view、自己写过的demo 内存泄漏场景及解决办法
  • 网络 TCP三次握手/四次挥手 讲讲 有没有直接在TCP层做过操作
  • 操作系统 进程和线程的区别
  • 闲聊 实习最大的收获是什么 你现在在团队里算是核心吗(我一个实习生核心才怪) 有没有觉得对自己能力提升特别大的需求 如果给你offer你来吗 如果要来的话离开现在的团队融入新的团队你有什么想法

结束语

这几次面试竞争者来自全国各地,科班与非科班,本硕博都有;企业有上市公司,有独角兽,也有初创企业和国企外企;时间跨度长,从七月提前批开始,直到现在尚未结束;变数多,企业和个人都是双向选择。因此,经历过秋招的人都会脱一层皮。未来方向的迷茫,被拒绝的沮丧,等待结果的焦虑,拿到offer的喜悦和选择的纠结,未来发展的担忧,这些大部分人都或多或少会经历。也正因为如此,我才决定详细地写下我的历程,为后来者,特别是那些迷茫的转行者,提供一个真实的案例。

对于大厂面试,我最后想要强调的一点就是心态真的很重要,是决定你在面试过程中发挥的关键,若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来。另外提醒一点,充分复习,是消除你紧张的心理状态的关键,但你复习充分了,自然面试过程中就要有底气得多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值