发面经攒人品,虎牙Android岗一二面

虎牙直播一面(45分钟):
0、设计模式的规则。
单一功能、面向接口而不是面向实现、接口隔离、里式替换(父类子类)、开闭原则、迪米特法则(高内聚低耦合)
https://www.cnblogs.com/dolphin0520/p/3919839.html
1、找到无序数组中第n大的数。说的是快排的思想。
2、两根不均匀的绳子,一根烧完要1小时,表示出半小时。一根绳子,表示15分钟。
3、Object类方法,详细说说equals和hashCode。
4、Java集合类,HashMap、ArrayList、LinkedList。
5、Java线程安全手段。
6、volatile作用。线程可见以及禁止重排。单例模式中INSTANCE使用volatile修饰的作用?
创建对象分为几个步骤:创建索引、开辟内存、初始化内存、索引指向内存。如果指令重排之后,先使索引指向内存,再初始化内存就会有问题。所以使用volatile禁止指令重排。
这块没答好,回去补了一下《Java并发编程的艺术》
7、OOM、内存泄露,Android中具体场景。Handler持有Activity的泄露链条。
8、GC,GC Root。
9、EventBus。
10、网络,三次握手四次挥手、POST、GET区别。
11、Error和Exception的区别,常见RunTimeException。
12、项目实习经历相关。
13、反问。
一面面完还是很有底的,因为直接问了面试官我过没过,他说应该过了。

虎牙直播二面(30分钟):
0、自我介绍。
1、JMM。方法中创建对象是在私有内存还是公有内存中。这个没太明白……最后反问面试官也说我这块答的不好。
2、handler机制,为什么需要handler。那时候答了个线程间通信,但是查了一下---主线程无法进行时间比较繁长的任务,所以需要子线程进行处理,然而子线程无法进行UI的界面更新,所以我们需要使用handler来传递消息给主线程,让其完成UI的更新。但是感觉mH的作用不是这样的吧……不清楚希望有大神解答一下
3、HashMap底层,红黑树作用。
4、volatile作用。单例模式中双重锁判断的两次判断的作用。
5、TCP三次握手,为什么不能两次,为什么不需要四次。TCP保证数据正确性的方法,我答的是滑动窗口,因为滑动窗口维护的是流的数据结构。
6、实习相关,日常学习相关,现有offer情况……只能羞愧地说没有offer
7、反问。
二面面完不是很有底,因为JMM答得不好,要恶补一下了,而且没有问算法,所以很虚……

感觉一面比较偏向基础,面试官没有特别多的开放性的题目或者拓展。到了二面面试官就有一些开放性的题目,比如如果让你实现HashMap你怎么实现、还有就是会顺着你的回答继续深挖下去。
#虎牙直播##校招##安卓工程师##面经#
全部评论
老哥你是最近面的吗?是用牛客网的线上视频面试进行的吗?
点赞 回复
分享
发布于 2020-03-03 10:11
是实习吗?
点赞 回复
分享
发布于 2020-03-09 22:42
滴滴
校招火热招聘中
官网直投
楼主,拿到offer了吗,以及安卓岗的笔试题有哪些
点赞 回复
分享
发布于 2020-03-19 16:48
lz一天两面吗
点赞 回复
分享
发布于 2020-03-23 22:53

相关推荐

十几分钟的电话面试。    有的写了下回答,大伙指正一下+ 数学运算函数 + 字符串反转函数  + 处理字符串的类   + Java数据容器 集合都有哪些 LinkedList  HashTable(ConcurrentHashMap 代替其作为线程安全的锁. 使用分段锁)  TreeMap+ 多线程+ Spring 中的 AutoWired 和 Resource 的区别   AutoWired (参数 required  多一个构造器注入) 优先 byType   Resource(参数 name type  属性注入  setter注入) 优先 byName    优先 resource+ 断点续传怎么实现:保存进度,定位上次的上传位置+ 怎么进行数据库的优化 :一个复杂查询,语句报错,全量查询不报错,分析得知全量查询数据量太大,缓存区中的数据并没有报错。复杂查询查询到了异常数据。使用 explain 查询计划进行定位,确定报错位置,是某个表的某个字段出现了字符串不匹配的问题,有非法字符无法进行字符串转换(存的是数字字符串,要转换成数字后进行运算,无法改变数据类型,牵扯到其他业务),想修改数据,害怕影响其他业务,造成数据存坏或者污染,尝试对异常数据进行过滤处理。再有就是对于经常查询的字段加索引。+ 项目中哪里使用到了 redis  :redis 用来加速数据库数据的访问,我有一些数据太大了,因此访问的比较慢,加入了 redis 缓存。但是通过 jmeter 测试,发现有客户端阻塞卡顿的情况。原因就是 redis 是单线程,大 key,会阻塞 Redis。并且访问流量大,服务器也无法承受。最终分析该数据不是很敏感,还是选择了直接使用浏览器进行缓存。      session 共享 和 token 续期问题。 使用 有序集合实现延迟队列+ git 有一个开发版本,在开发版本(1)进行了一堆代码的开发,突然加了一个临时版本(2),如何将分支 1 上你的代码加入到版本 2 上,是用什么命令:使用 checkout 切换临时分支,使用 git merge 合并两个分支。解决冲突,拉取代码 上传代码+ SpringBoot 和 SpringCloud 讲一下
点赞 评论 收藏
转发
呜呜呜凉凉,我是飞舞没有录音,记不太清楚了。八股:1、类加载过程?2、怎么打破双亲委派机制?怎么重写loadclass类?3、怎样实现线程隔离?4、类加载器有几种?5、用户态和内核态是什么?用户态怎么进入内核态?6、UDP的应用场景?7、怎么检查死锁?8、class文件中有什么?9、https怎么建立连接?10、查看进程有多少TCP连接?11、倒排索引的数据结构?12、接口幂等性怎么实现?13、http和https的区别?14、三次握手四次挥手?15、 mq消息确认机制?16、怎么实现熔断降级?17、进程之间通信怎么实现?算法:leetcode原题正则表达式、股票问题                                                                                                                                     ------------碧桂园五星上将
点赞 评论 收藏
转发
1 19 评论
分享
牛客网
牛客企业服务