android looper_Android应届生被为难,字节面试5轮,最后把面试官收拾了

78d8604c189518803da1c96d5488f954.png

前言

今年的大环境非常差,互联网企业裁员的现象比往年更严重了,可今年刚好是我的第一个“五年计划”截止的时间点,说什么也不能够耽搁了,所以早早准备的跳槽也在疫情好转之后开始进行了。但是,不得不说,这次阿里面试真的太难为我了,可以说是和面试官大战了5个回合,不过好在最后给了offer。

下面是我的面试经历分享,希望能带来一些不一样的启发和帮助。

我与字节面试官“大战”5回合,胜

字节面试涉及到的范围也很广,也具有一定挑战性的,以下包括字节实习四面和校招一面,最终拿到了Android开发岗位offer,字节面试过程中的感觉就是很多我不太熟悉的知识点都被问到了,甚至是不知道的知识点,但整体面试官给人的体验还不错,一般会提前打电话沟通面试时间。

字节实习提前批一面

  • Activity四种启动,SingleTask模式下上面的act删除以后对当前act会回调哪些方法
  • onNewIntent
  • Service 和 IntentService区别
  • Android一张图片占用的内存怎么计算
  • 实习是怎么做UI适配的
  • Handler机制,Looper作用,他怎么知道message对应handler,主线程就有这个looper吗,主线程还能再创建一个looper吗,一个线程可以有几个looper,怎么保证只有一个looper,多线程怎么都知道自己是不是有looper
  • 内存泄漏,Android中出现场景,和内存抖动的区别
  • Fragment add 和 request 的区别
  • RecyclerView 的缓存机制
  • 抽象类和接口的区别,使用场景
  • == equals
  • 重写和重载区别
  • string方法和stringBuilder区别
  • synchronized
  • list 和 set 区别
  • http https 区别
  • 排序算法比较优劣,稳定性

字节实习提前批二面

  • Handler是用来做啥的
  • 每个线程都能有自己的Handler吗
  • Fragment和Activity之间传递数据
  • Activity加载Fragment的方式
  • add一个Fragment的时候已经有一个Fragment的话,对之前的Fragment的生命周期的影响
  • ActivityA启动ActivityB的生命周期回调
  • Activity的启动模式(分别用于什么场景)
  • onSaveInstance和onReStoreInstance作用
  • ViewModel怎么实现的
  • ViewModel是不是一直存在内存中(比如我开启了很多页面,或者ViewModel持有Bitmap这样的对象)
  • Android用过哪些布局
  • View的绘制会经过哪些(onMeasure,onLayout,onDrow)
  • 让View重新绘制的方法(重绘时,onMeasure会调用几次)
  • onMeasure会执行几次
  • ConstraintLayout经常用到的属性
  • guaidline为什么不会在布局上显示
  • 事件分发机制
  • Android中线程挂了进程会崩溃吗?
  • RxJava用过了哪些操作符

字节实习正式批一面

  • Java内存分为哪些区域
  • 堆内存溢出、栈溢出相同吗
  • 哪些场景下会发生栈溢出
  • 创建的对象一般在哪个区域
  • GCRoots有哪些
  • 复制算法(GC算法之一)的流程
  • 静态内部类和内部类的区别
  • volatile的作用是什么
  • 禁止指令重排序是怎么实现的
  • 为什么需要禁止指令重排序
  • synchronized修饰静态方法和普通方法时的区别
  • synchronized可重入吗
  • 类锁、对象锁有区别吗

字节实习正式批二面

  • 为什么要用MVVM
  • 数据变更UI自动更新怎么实现的,用的DataBinding吗
  • 什么是观察者模式,有什么好处
  • 什么情况下用责任链模式?哪里遇到过?有什么好处?
  • 怎么实现的责任链模式
  • 为什么okHttp里面用到责任链模式
  • 用户可以自定义多个拦截器吗
  • 有网状态下的缓存和无网状态下的缓存一样吗
  • 缓存是自己做的还是okhttp做的
  • 可以手写一些sql吗
  • room是什么类型的数据库
  • room是怎么实现的,为什么不要写sql呢
  • livedata粘性事件
  • jetpack还用过哪些
  • navigation用来做什么
  • TCP UDP区别
  • 为什么需要三次握手和四次挥手
  • 三次挥手不行吗
  • 两次挥手呢(服务器接收到客户端的FIN报文,立马将回复客户端ACK和自己的FIN报文一并发给客户端可以吗?)
  • TCP属于哪一层
  • TCP的上一层是哪一层
  • 应用层常见的协议
  • http与https的区别
  • https怎么进行的加密
  • 对称加密和非对称加密的方式
  • 你知道的非对称和对称加密有哪些

字节校招提前批一面

  • View的事件分发、View的绘制流程
  • Okhttp3的优点
  • 内存溢出、内存泄漏、四种引用类型
  • glide和picasso区别,图片缓存机制,Bitmap是存在java层还是native层
  • 弱网优化
  • Android线程间通信方式有哪些
  • Handler机制,loop()为什么不会阻塞主线程,postDelayed()的原理。
  • 手撕代码:括号匹配合法性判断。比较简单,写完后改了下题目,增加非括号字符,另外面试官建议实现方法的可扩展性(不仅是括号,可能有其他匹配规则),最后优化内存。

面试腾讯之前,我流了多少汗?

1.梳理知识

一般的面试,会被问到JVM原理、Android基础、四大组件和热修复等内容,这都是一名普通Android开发人员的知识结构,那么肯定是需要具备更多的知识树,需要掌握更全面的知识体系,所以就需要对知识进行一个系统的梳理了。

2.复习知识

工作这么久要重新再去面试肯定是要将自己的知识储备重新拿出来,要把各个知识点复习到位,需要通过各个方式,选择自己最习惯的。无论是读电子书籍还是观看视频都是可以的,但要记得做好自己的学习笔记,能够起到总结的作用,再去复习起来就特别清晰了。

3.电子书籍

4.学习笔记

5.学习视频

6..刷面试题

工作5年,虽然清楚现在流行什么技术,但对于互联网大公司会面试一些什么还真是不太清楚,所以面试之前刷一刷面试题还是很有必要的,能够做到举一反三。一线互联网的面试题,我整理了近三年的,内容还真不少。

拿到offer后的规划和心态

毕业后,我的第一个5年按照计划进行了,那么拿到字节offer后,下一个5年也有要清晰的目标。接下来的时间,是形成思维方法论和知识体系的阶段,同时也要培养自己团队协助与管理能力,提升自己的眼界,从而有更长远的发展。

至于心态,脚踏实地,不傲不馁。

总结

最后,希望大家都能够有自己清晰的发展路线,希望大家都能顺利拿下offer,进入理想的公司,共勉!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值