抖音Android面经,成功斩获offer
一面:
1.activity和service怎么通信
2.因为扯到了跨进程通信,就让我说一下安卓上有什么跨进程的通信方式
3.说到了管道,让我说一下在Android的时候会用到管道吗
4.Java两个整型相加怎么知道有没有溢出
5.Java怎么停止线程
6.假如有4个线程同步开始,其中第4个线程要等前面三个线程执行完进行些统计操作,要怎么操作呢。
7.如果不通过使用Java的并发包的现成类库来实现一个CountDownLatch,怎么实现?
8.那么使用你这个CountDownLatch的这3+1个线程,一共需要几个锁呢?
9.知道大顶堆和小顶堆吗,一个数组建堆,时间复杂度是多少呢?
10.在堆中找指定的一个元素复杂度是多少?
11.看你简历上也有写网络方面的知识,https的过程说一下
二面:
1.Unicode和ASCII的区别
2.Unicode有哪些种类?Java是哪种?
3.json这种格式知道吗,是怎样的,有什么用?
4.序列化除了json还有什么可以使用?
5.说说Android上的序列化?
6.Java的serializable有个Id,你知道是有啥用的吗?
7.深拷贝浅拷贝说说?
8.Object的hashcode()用来干嘛,怎么自己实现hashcode?
9.JNI讲讲?
10.一个a包里的B类的c方法,cpp代码中的方法一定要a_B_c()这样吗
11.Java的泛型讲讲,有啥用?咋实现的
12.在什么情况下可以在运行时获取泛型参数
13.上界通配符和下界通配符讲讲
14.两个方法,一个方法的参数是泛型的,一个参数是正常的类(如String),会怎么样?
15.输入网址到返回ip的过程
16.假设你你缓存的ip地址过时了,怎么办
17.你认为DNS机制是怎么解决这个问题的,你可以尝试参考http的缓存机制想想
18.广播有几种,有序和粘性讲讲
19.注册广播的方式,你觉得静态注册广播这个是什么时候执行的呢
20.本地广播
21.线程进程区别
22.讲到内存资源,线程有什么数据是私有的
23.算法:二叉树的右视图
24.算法:两个栈实现队列
25.讲讲工作项目遇到的问题
26.有什么想问我的:
三面:
- 自我介绍
- 内核态用户态的区别
- 用户态可以访问内核态的内存吗,你说的一些有风险的指令,具体是怎么阻止用户态程序去执行有风险的指令的
- 既然用户态不可以访问内核态的内存,那么在做一些比如网络连接的操作的时候肯定需要内核态内存,用户态程序怎么做到使用内核态内存的
- 说到跨进程通信方式,你知道有什么跨进程通信方式吗?
- 你说到的共享内存,管道,消息队列,binder他们之间有什么区别吗?
- 你说到广播、内容提供器也有使用binder与AMS通信,那他们与binder之间有什么区别吗(广播、内容提供器的实质是不是就是binder)?
- 为什么要写这样一个测速的程序?
- 两个Activity,一个显示商品列表,一个实现商品详情页,在商品详情页点了关注之后,怎么使得返回商品列表之后也更新了关注状态呢?
- 你说的发布订阅模式,你知道有什么框架使用了这个设计模式吗?
- 假如两个Activity数据量比较大呢,要更新相当多的东西呢?
- 你把model设置为单例的话,那这个列表不断下滑,加载更多内容,最后导致占用相当多的内存怎么办?liveData、ViewModel你可以了解下
- 算法题:"www.toutiao.cn"转成"cn.toutiao.www"
- 有什么想问我的?(在头条工作的体验?这个你可以问hr)
四面:
- 你是哪里人?为什么选择投上海的岗位?除了上海,还有什么意向的城市吗?为什么不喜欢北京?上海也是这样啊?
- 问专业。与程序相关的课程有多少?有学计算机组成原理、计算机网络吗?
- 除了看书以外学习途径?你在安卓的群上一般讨论什么东西?印象深刻的是什么?
- 你这个在wifi的部门不是专门做安卓的吧?有没有安卓方面导师?都是靠你自己摸索的吗?项目有几个人在负责,都是你在负责吗?
- 因为什么而接触安卓?你在这个团队里负责什么角色?贡献了多少代码比如有多少页面是你写的?
- 有没有什么社团之类的让你接触安卓?
- 有什么想问我的?(问了对应届生的期望)
HR面:
- 你认为你前面的面试表现怎么样?
- 你是女生为什么要来上海这么远工作?
- 你觉得抖音(还是字节跳动来着)怎么样?
- 你提到技术驱动型,你认为怎么样才是技术驱动型公司?
- 你提到你是抖音的用户,但是使用频率不高,是因为什么,因为抖音的内容质量不好吗?
- 你提到抖音是音视频相关,你对音视频开发是比较感兴趣吗?
- 之前工作中有没有遇到什么较大的问题?这个问题是什么原因有没有探究?
- 工作期间有没有遇到什么比较大的挫折?
- 你之前有投过百度没有通过,是因为没有准备好吗?
- 如果通过了面试,你什么时候可以过来上班?
总结:上海抖音经历4面技术面+ hr面。10.25发的意向书
最后感谢一下腾讯课堂总结的面试专题资料,让我顺利获得了抖音面试的offer。知识共享、快乐传递,下面我也将这份面试学习资料分享传递下去,希望有缘人在面试求职道路上顺利赢取心仪的offer
点击下方链接:
Android高级进阶视频、面试真题解析免费分享
Android高级架构进阶课程视频+面试题视频解析
2019Android面试专题汇总(含答案解析)
设计模式专题
数据结构算法专题
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
python的文件与文件系统
文件的操作python中,使用open函数,可以打开一个已经存在的文件,或者新建一个新文件。open(文件名 访问模式)其中open 后面跟的文件名/文件路径一般都是字符串。open的作用类似于vim命令(文件存在——打开;文件不存在——新建)。访问模式:r:以只读方式打开文件,文件的指针会放在文件的开头,这是默认模式w:打开一个新的文件只用于写入,如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件进行写入a 打开一个文件用于追加。如果文件已存在,文件指针将会放在文件的末尾,也就是说,新的内容将会被写入到已有内容之后,如果该文件不存在,则新建文件进行写入rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头,这是默认模式。wb 以二进制格式打开一个文件只用于写入。如果该文件存在则将其覆盖。如果该文件不存在,创建新文件进行写入ab 以二进制格式打开一个文件用于追加。如果文件已存在,文件指针将会放在文件的末尾,也就是说,新的内容将会被写入到已有内容之后,如果该文件不存在,则新建文件进行写入r+ 相当于r和在文件的开头写入数据(即覆盖文件开头的数据)。这也是r+和r的区别w...
- 下一篇
Python入门教程:内置函数—Map、Reduce、Filter
Python入门教程:内置函数 — Map、Reduce、Filter 1. map 根据提供的函数对指定序列做映射,第一个参数function以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的迭代器map(function, iterable, ...) function:函数iterable:一个或多个序列 def square(x) : # 计算平方数... return x ** 2 ... map(square, [1,2,3,4,5]) # 计算列表各个元素的平方 [1, 4, 9, 16, 25] map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数 [1, 4, 9, 16, 25] 提供了两个列表,对相同位置的列表数据进行相加 map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) [3, 7, 11, 15, 19] 2. reduce 对参数序列中元素进行累积,函数将一个数据集合(链表,元组等)中的所有数据...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库