字节跳动互娱Android开发面经
在字节的校招官网投的简历,很快就收到面试邀约,据说有内推码的比较快,刚好这篇帖子里有内推码,大家可以去试试 。
我学校在广州,面试的岗位在深圳,面试是视频面试,约的是7点面试。我实习下班是晚上6点,当时下班后我飞快地赶回宿舍开电脑,连晚饭都顾不上。实践证明,饿的时候头脑是最清醒的。面完一面后,过会开始第二面,效率很高。
这里分享下面试内容:
一面 60min
总的来说,一面侧重考察基础(Java、Android、数据结构与算法、网络、操作系统、数据库),流程走下来到问重点算法的时候,只要求讲清楚原理,没要求写代码。面试官人还不错,不懂的问题会引导,甚至帮助解答困惑。
- 自我介绍
- 问简历上的项目
(1)项目中你做了哪部分?
(2)有没用开源框架?用了什么开源框架?为什么要用这种开源框架? - Android部分
(1)view如何进行绘制?
(2)Android中的线程了解多少?(AsynTask,Thread等的使用场景)
(3)Android中一个进程对应一个dvm?一个Android应用对应一个dvm?
(4)讲下Android事件传递原理。
(5)讲下即时通讯机制。 - Java部分
(1)讲下Java四种引用。
(2)讲下Java基本类型与其封装类?为什么要用封装类?
(3)如何在多线程环境保证操作原子性?
(4)讲下JVM内存模型。
(5)final用在哪些场景?有什么作用?
(6)finalize有什么用途?
(7)wait和sleep的区别?
(8)讲下继承和多态。 - 数据库
(1)不用锁的情况如何处理数据库并发问题。
(2)讲下sql左右连接。 - 操作系统
(1)linux多用户登录看到界面为什么不一样?
(2)什么是死锁? - 数据结构算法
(1)讲下各个排序算法原理。
(2)什么是大顶堆?
(3)讲下二分查找原理。 - 其他
(1)EventBus的原理。
(2)问面试官的问题。
二面 50min
二面依旧考察基础,最后手写Code,我先讲解题思路给面试官听,然后他说解题思路ok就可以,不用写,结果我还是耿直地写完了。
- 自我介绍
- Java部分
(1)讲下Java的四种引用。
(2)讲下JVM内存模型。
(3)讲下JVM的回收算法。 - Android部分
(1)讲下Android的handler机制。
(2)讲下intent显示和隐式启动。应用A可以隐式启动应用B的Activity?
(3)讲下Android桌面图标机制。
(4)讲下view触摸传递机制。假如onTouchEvent都没有返回true,最后被谁消耗了?
(5)惯性滑动如何实现?
(6)滑动冲突如何处理? - 设计模式部分
(1)你知道多少个设计模式?
(2)写个单例? - 编程题
(1)用sql语句进行联表查询。
(2)求字符串第一个只出现一次的字符。 - 其他
(1)问面试官的问题。