字节跳动Android暑期实习5面面经
一个超级像吴恩达的大佬,不论是发型还是气质。听他介绍说是字节跳动helo部门的安卓架构师(果然是大佬)。然后我也简单自我介绍后就开始问问题了。
l 谈谈Activity的生命周期。假设有两个activity,分别是A和B,请你讲讲从A到B,再从B返回到A的生命周期。A和B的切换动画发生在哪个周期中?怎么想让B销毁时告知A?(我说了可以通过在Application定义一个静态变量,但其实用广播或EventBus也可以)
l 怎样保存Activity的状态(saveInatanceState()),发生在哪个生命周期?想要恢复状态呢?
l 刚刚你谈到静态变量,静态变量和普通变量有什么区别?普通内部类和静态内部类有什么区别?怎样在main方法新建普通内部类对象?怎么新建静态内部类对象?写一下。(一紧张没把新建普通内部类对象写出来,尴尬)
l 类的访问权限(public,protect,default,private)
l 抽象类和接口的区别。
l 重写和重载的区别?然后问了一个有关重写的问题,如下。
class A{ public void method1(){ ……. } }
class B extends A{ @override public void method1(){ ……. }
public static void main(String[] args){ A b=new B(); b.method1(); } } 问调用的是A的method1还是B的method1. |
l 算法题:两数之和(求和为Target的所有数对,数对可重复)
l 有什么想问我的吗?
二面
和一面连着面的,让等了20分钟左右。是个比较年轻的小哥哥,带着口罩,非常和善。先是问Java的问题,然后是Android的问题。
l 已知int i=123,问”i==new Integer(123)”返回true还是false?(装箱拆箱)
l ==和equals的区别。
l 知道String.intern()方法吗?(不知道…)
l 谈谈反射机制。
l 什么是多态?动态绑定是什么?
l 有哪些进程间通信机制?共享内存是怎么实现的?
l Activity的启动模式?taskAffinity属性用什么用?假设有两个activity,分别是A和B,请你讲讲从A到B,再从B返回到A的生命周期(四种启动模式情况下都说一遍)
l 算法题:两数之和(没错,又是这个,只不过这次要求不能有重复数对)
l 有什么想问我的吗?
三面:
上来连自我介绍都不用,直接开始问问题。
l context是什么?application和activity的context的区别。
l Android有哪几种广播?怎么声明广播,有什么区别?
l Binder是什么?
l final关键字的作用,用final修饰的变量可以改变吗?(通过反射)
l 手写有参数传入的单例。(双重校验模式)
l https是什么?证书下发过程是怎么样的?
l 算法题:反转链表
l 有什么问题想问我吗?
HR面:
l 为什么想来字节?
l 准备在哪发展?
l 在学校成绩排名怎么样?为什么排名中等,原因是什么?
l 哪件事你觉得最有成就感?
l 如果大学再来一次,你觉得结果会怎么样?
l 有什么爱好?
l 有同时投其他公司的简历吗?
l 什么时候能来实习?
加面--部门leader面:
在等hr的offer确认通知时,等来的却是加面通知,说这是部门Leader面,一定要认真对待,和我预约个时间。当时心里就像尼克杨那个黑人问号图,我能怎么办,我也很绝望啊,但只能乖乖复习。
Leader一上来就开始让我写算法题,然后再是自我介绍。
l 有一个树,大概长这个样子。问从根节点在n步之内走到某个值为x的节点的概率。(当时听题目就听了半天,然后一脸懵逼硬着头皮开始写,自然是没写出来,只能大概说说思路维持生活这样子)
l 实验室的研究方向是什么?你做的是哪部分,你觉得你实验效果没有别人好是什么原因?(这部分问得很细,深感leader就是leader,什么都懂,不论是开发还是算法)
l 设计一个图片加载库,从网络,缓存,展示这几个方面分别说说。
l 设计一个视频播放库,怎么实现边下边播?(都问得很细,考察你的问题解决能力)
总结:算法一定要多练,现在公司针对越来越注重算法了。然后字节比较注重基础,多看看基础知识(操作系统,数据库,网络),不要光是背,多看看原理。还有就是,要提前熟悉牛客的OJ,牛OJ是要手动导包的,然后要手动编写测试用例,我一面就是在这吃了大亏,以为是和leetcode一样的,写完就运行,却发现一直报错..
#字节跳动实习##字节跳动##Android#