刚面完字节,热乎。

基本情况

先说明一下本人的情况,我是一名 双非非科班 的大二学生,有不到一年的实习经验(大一下在一家小厂实习),上周投了字节跳动的简历,昨天面完试啦,就在这里分享一下面经和面试的感受吧。

本人平时除了安卓外,还自学了 Python、Java 后端等技术,有一定的技术广度,并且能够独立完成较完整的项目,下面先分享一下这轮面试遇到的题目:

字节跳动Android实习生一面题目
  • 自我介绍
  • Java的四种引用
  • HTTPS的原理、握手过程
  • 多线程如何同步
  • synchronized和ReentrantLock的区别,你认为哪一种比较好,为什么
  • 有用过哪些设计模式
  • 如何理解依赖反转
  • 如何理解多态(这个翻车了)
  • 运行时多态/编译时多态(没看这部分…让面试官举了个例子,自己猜测了一下)
  • MVC MVP MVVM的区别
  • RxJava如何切换线程
  • 3个View:A B C,A包含B,B包含C,在onTouchEvent中,对于ACTION_DOWN,A C返回false,B返回ture,对于ACTION_UP,A C返回true,B返回false,问谁消费了ACTION_UP事件…(好像答得是A,面试官说答错了,不过分析流程的时候把事件分发机制讲明白了,蒙混过关)
  • 算法题:找出2个链表的第一个公共节点,要求空间复杂度O(1)

一面结束告诉我不要走,十五分钟之后二面开始
  • 上来就是算法题:两个线程如何让线程A等待线程B的运行结果:一开始想用join,后来尝试synchronized,但都存在问题,最后想到了自旋
  • 算法题:确定一个数组是不是二叉搜索树的后序遍历
  • 聊项目
  • Retrofit的实现原理
  • Retrofit所使用到的设计模式
  • 说一说观察者模式
  • 对LiveData监听的的onChange方法什么时候会被调用(这个一开始答偏了,说内部的引用改变才会调用,后来经过提示是生命周期相关)
  • 弹出一个Dialog,Activity中LiveData的onchange是否会调用
  • 不用第三方库,自己尝试读取Bitmap,需要注意哪些问题(内存溢出和LRUCache)
二面结束告诉我可以休息半小时,等会直接三面(此时脑子已经一片浆糊了…)
  • 聊项目
  • 为什么学Android
  • 怎么学Android
  • 怎么重构项目
  • 怎么提升自己
  • 算法题:36进制加法
  • 以后怎么打算的
  • 能实习多久

连续三轮面试,真的好累啊…

面试感受

大家可以看到,面经上的题都是比较常见的问题。在准备面试之前,我可能对这些知识只是有简单的了解,但是在准备面经的这几天,我刷了很多字节的面经,自己尝试着去回答一些问题,我觉得这几天刷面经的这个过程对我来说还是效率比较高的,刷面经也可以帮我快速明确自身有哪些不足的点。

本来还是挺自信的,结果最后,面试官却对我说:你的基础还是挺好的,但是算法不行。

雀氏是酱紫啊,我本身是没去系统地学习过数据结构和算法的。。。。。

除此之外,面试官还说:虽然你学了 Python、Java、Android,知识很丰富。但是你现在最好找一个方向,并且让自己在这个方向上学得更有深度。

最后

最后,想给大家一些值得参考的小建议,我们可以通过刷面经、准备面试的过程中发现自己不足的点,从而帮助自己高效学习,而不是一直闭门造羹、不敢去尝试。在我大一的时候,就投简历到了京东,那次面试简直被面试官虐残惨了,一问三不知,其实就是当时自己的技术比较菜,当时可以说是磨灭了我一部分信心吧。通过这次面试,却让我重拾信心,让我看到了自己和大厂之间的距离正在渐渐缩小,也看到了一丝丝胜利的曙光,但是还是需要坚持不懈的努力 💪

在这里给大家分享我面试之前刷的面试题,希望对大家有帮助!

最后的最后,祝大家都能进入大厂,实现自己的目标,让我们一起加油努力!需要以上资料的扫码免费领取(承诺100%免费
  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值