2020 春招四五月份面经
腾讯 PCG 看点一面(4 月 16 日 腾讯会议 60min)
- 项目
- APK 的入口在哪里
- Activity 的启动模式
- 列表闪动的问题怎么解决的?
- ListView 使用可以改进的问题,包括布局优化、异步加载资源的闪动问 题等等。
- Glide LRU 算法的思想?
- 怎么设计一个图片加载工具?
- 为什么使用 Gson?
- 知道哪些排序?快排和冒泡的思想?Arrays.sort 方法的排序?
对项目的总结感受? - 反问环节,问了下流程的时间问题,以及看点这边优先级比较高需要提 前学习的内容。
一面的面试情况顺利,面试官也当场表示这场面试算是“勾搭”上了,后面即 使走不完流程,也会在正式批先找我。另外也建议我自信一点,跟我说了下即 使前面待报批流程放弃也是一种双向选择,可能不同的面试官会有不同的考量, 即使被一个部门挂掉,别的部门也许就正好需要你这样的同学等等。
前面的面试结束以后过了几分钟,就接到了面试电话。
PCG 看点二面(4 月 16 日 电话 40min)
- 介绍项目
- 客户端发送信息给服务端去控制台灯,怎么保证台灯也能收到指令?联 调怎么做的?
- 为什么要进行布局优化的,从什么地方产生的这个需求?
- 为什么使用 Websocket,而不用 Socket?
- 获取图像然后使用 SDK 之前,有对图像进行处理吗。
- OkHttp 当中学习过什么内容,网络请求是在哪里发起的?有哪些拦截 器?
- 原生的网络请求方法?
- APP 框架怎么搭的?
- 为什么使用 Fragment?Fragment 相比 Activity 的优势。
- HashMap 是线程安全的吗?
- 实验室相关?
- 个人兴趣爱好?
最后面问面试官建议的时候,面试官反问我为什么回答问题的时候停顿比较久, 我解释了下,然后就说我学习方面没什么问题,但是建议我回答问题的方式需 要改善一下,另外也是建议我不用太紧张?(我不知道前面面过的很多面试官 留下了什么评语,似乎这回都建议我自信一点,其实这个建议是很受用的,面 试当成技术交流是最好的,希望以后能让面试官看到更好的状态)当然我不知 道“学习方面没有问题”具体是什么意思,但是面试官对我的这场面试总体还 是不太满意,第二天看挂掉了,感觉自己有点懵,回想一下很多地方确实没有 回答好。
网易一面(4 月 17 日 牛客视频 40min)
- 自我介绍
- 为什么选择找安卓实习?
- 简单介绍项目?
- 使用到 Websocket 进行长连接,这个长连接实现的原理是什么?有什么 好处呢?
- OkHttp 看过源码吗?它的设计方法是什么?有哪些拦截器的?
- HTTP 的常用响应码和 HTTP 的请求头?
- 自定义 View 有哪些步骤?
- View 的视图绘制过程中的几个方法都有些什么作用?
- 项目中实现的自定义 View 是实现了什么功能,实现了哪些方法?
- 事件分发的流程?产生的事件会经过哪些处理完整的讲一下?
- 布局优化做了什么内容?
- 内存泄露产生的原因?以及还有哪些场景?
- 提到引用,那么 Java 当中的引用的区别都是什么?
- JVM 运行时数据区?
- Java 当中 Error 和 Exception 的区别?具体的 Error 和 Exception 常见 的有哪些?
- 打包的流程?
- Activity 的启动模式?
- 尺寸单位 dp、sp、px 的区别?
- Activity 生命周期以及区别?
- 反问环节,问了下部门的工作,用到的技术这些。
网易二面(4 月 22 日 牛客视频 50min)
- 自我介绍
- 讲下项目觉得亮点的地方
- 讲下项目当中二维码怎么实现的?
- 如果要自己实现,怎么使假设一个 url 生成一个对应二维码?
- 刚刚提到了加密,那就说下知道的加密方式?
- 常用的对称加密有哪些?
- 公钥私钥都是做什么的?
- 项目里面用到了一个 MPAndroidChart,那么这个框架怎么画图的有了解 过吗?
- 假设有一批数据,要画柱状图,怎么实现?
- HTTPs 的加密会话的过程?
- MotionEvent 有几种事件?
- ScrollTo 和 ScrollBy 方法?
- SurfaceView 和普通 View 的区别?
- requestLayout 和 invalidate 方法的区别?
- 死锁怎么发生的?
- 了解银行家算法吗?目的是什么?思路是什么?
- res 目录和 asset 目录的区别?
- 虚拟机的垃圾回收机制?
- 新生代老生代的回收算法有什么不一样啊?
- GCRoot 怎么定义的?
- 写个代码,两个线程轮流给变量 i+1?
网易 HR 面(4 月 24 日 牛客视频)
就是很普通的问题,为什么选择网易云音乐?对网易云音乐印象深刻的地方? 说了评论。
然后翻车了,就没有然后了,然后 HR 也从最开始的热情表现出对我不感兴趣了, 草草结束。
斗鱼一面(4 月 23 日 腾讯会议 40min)
- 自我介绍
- 讲下项目
- Java 引用类型
- 说下项目当中怎么选择抽象类和接口
- MVP 架构模式的使用,MVP 关系
- String、StringBuilder、StringBuffer 的区别?
- 那它的线程安全怎么做到的?
- 数组和 ArrayList、LinkedList 的区别?
- volatile 关键字保证了原子性吗?
- 内存回收机制?
- jar 包当中的一个 class 提供了一个功能,现在要对这个 class 进行一 个扩展,那么有什么方式可以对这个 class 提供的功能做一个增强?
- 那么对动态代理了解吗?
- InputStream 和 BufferedInputStream 涉及到的设计模式?
- 那么讲下装饰者模式,实现逻辑是怎样的?
- 布局时 include、merge、viewstub 分别的作用?
- 那么 ViewStub 在源码当中跟 View 有什么区别?为什么能做到懒加载?
- 讲下 View 的绘制流程?
- 项目当中遇到的一些问题?
- 项目当中出现 OOM 或者 ANR 问题怎么解决?什么方式 and 什么工具?
- 反问环节,问了下建议,面试官说回答不太连贯,虽然都在点上。然后 问我对斗鱼有什么问题吗,就问了下斗鱼这边准备实习需要学习的内 容?
一面完了以后我以为还有机会,之后就没有消息了,一个星期以后暂不 匹配。当时面试的时候觉得问题还是挺简单的,但是后来听录音感觉自 己其实回答的不太好,所以不仅仅是面试官说的那个说话不连贯的问题。 加上后面还是面试官反问我对斗鱼还有什么问题吗,感觉印象是不是会 不太好。
富途一面(4 月 24 日 腾讯会议 80min)
- 开始是聊了下
- 然后是做了一些题,代码编程题智力题这些。
- 深拷贝与浅拷贝
- 内存对齐
- 浏览器输入 URL 会发生什么
- 。。。 回答的不太好,挂了。
美团一面(4 月 28 日 牛客视频 90min)
- 工厂模式的使用场景。
- 虚拟内存如何管理
- OSI 七层模型。
- 三次握手四次挥手 https 的握手。
- 数据库的范式和事务
忘记录音了,开头问了下为什么选择 Android,问了对未来的规划,也问了学 习的过程,看过什么书等等。
后面主要是从设计模式开始问起,然后问操作系统,计算机网络,然后写代码。
前面部分的回答还算流畅,但是计算机网络说到分层,在说数据链路层的时候 居然卡壳了该死,而且我情不自禁低下头看键盘思考的时候,面试官叫我看着 屏幕说别低着头,都不知道是不是被误会看小抄了。然后代码部分是一个剑指 原题,中间的二叉树遍历这里我当时选择了非递归遍历,但是没太写好。
所以整体面试情况可能给面试官不是很满意,美团一轮游,后面就没有消息了。
快手一面(5 月 11 日 牛客视频 120min)
- 自我介绍
- 先介绍项目,项目里主要做的工作有哪些呢?
- 项目里面提到的图像采集的部分是怎么做的呢?
- Websocket 长连接是怎么做的?
- Java 的基本类型有哪些?
- 它们的长度分别是多少呢?
- 自动装拆箱?
- final 关键字的用法?知道哪些用法,在什么场景表示什么意思?
- 对象的比较涉及的==和 equals 方法,它们之间的区别?
- 为啥 hashcode 方法也要被重写呢?
- 觉得 Java 当中哪些要素体现了面向对象的思想?以及项目当中是怎么应 用的?
- 怎么样理解多态呢?
- String = “abc” 和 String = new String("abc")这两种创建字符串 之间的区别?
- String a = “abc” + “def”这个字符串拼接过程中+的过程是怎么实 现的?编译期是个什么过程呢?
- 用过 StringBuilder 吗?什么情况下会用这个?
- 那么 StringBuffer 呢?和 StringBuilder 有什么区别吗?
- Java 的引用类型有哪些?分别在什么场景下用,有些什么特点呢?
- 18.内部类有哪些?又有什么不同呢?
- 19.刚刚提到匿名内部类,那它有构造器吗?
- 20.那么匿名内部类可以显式声明一个构造器吗?
- (上面回答了不可以)然后问如果要做一些初始化工作怎么办?
- finally 的用法?
- 知道异常链吗?
- 项目当中有创建线程吗,创建线程都有哪些方法呢?
- 线程池的类型都知道哪些?
- 觉得线程安全的本质是什么?
- 用过哪些手段保证线程安全?
- synchronized 可以用在什么地方呢?
- volatile 关键字了解过吗,作用是什么呢?原理呢?
- 死锁是怎么产生的?
- 怎么去打破死锁呢?
- juc 包中了解哪些工具呢?
- 那对 ConcurrentHashMap 了解哪些呢?
- ConcurrentHashMap 内部的数据中每个桶是怎么组织的呢?
- 那怎么扩容呢?旧的结点转移到新的位置,是怎么确定这个位置怎么对 应呢?
- Android 当中的 LaunchMode 有哪些?
- Activity 的声明周期有哪些?
- 前面提到的 AsyncTask 做异步任务,它的实现原理是怎样的?怎么更新 UI?并发执行任务和顺利执行任务分别是怎么实现的?
- 39.invalidate() 和 requestLayout()
- 视图绘制机制?
- Android 当中的 Handler 和 Looper 是怎样的一个关系呢?
- 可以在一个进程当中创建多个 Looper 吗?
- 假如现在有一个 Button,用户点击这个 Button,那么这个 Button 对这 个触摸的响应,整个事件处理过程是怎样的?
- Surface、SurfaceView、SurfaceFlinger 的关系?
- 说下自定义 View,举一些例子,说下是怎么做的?
- 有自定义绘制的一些过程吗?那自定义绘制的时候有些什么需要注意的 地方吗,比如效率方面等?
- Binder 通信机制相关,做安卓应用的时候进程间通信都用过哪些呢? Binder 实现原理是怎样的呢?
- Binder 是怎样在进程隔离的情况下通过哪些手段进行通信的呢?
- 知道 MemoryMap 吗?
- Fragment 使用中用到的 beginTransaction()的意义?
- 了解 RxJava 吗?那了解其中的 map 操作符是做什么用的吗?
- 讲下对内存泄露的理解吧!
- Java 当中的垃圾回收都有哪些了解呢?
- DVM 和 ART 的区别
- HTTP 和 TCP 是什么关系呀?
- TCP 的三次握手是什么过程呀?
- HTTPs 和 HTTP 的区别是什么呢?安全层会话建立的过程是什么样的?
- Java 当中 List 会有些不同的实现,那么 ArrayList 和 LinkedList 有些 什么区别呢?结构,性能,效率等?使用的时候会怎么选择呢?
- 平衡二叉树的概念?
- 平衡二叉树的具体实现有哪些呢?
- 怎么判断链表当中是否存在一个环呢?
- 那怎么计算一个环的大小呢?
- 写代码,反转链表。
- 反问环节,问了下实习需要提前学习什么内容,以及问了下一些读源码 的时候的对于代码细节不记得就感觉没有内容去支撑自己去讲述某一个 代码的逻辑的这个困扰,然后面试官也是说前面回答发现我有些在乎代 码的细节,方法名啥的记得很清楚这些,就给出了一些的建议。
快手一面的面试官一直带着笑容,我回答完一个问题也会反馈一句“好呀”。
不过快手的面试日常不都是连着面吗,这种两个小时见过快的都已经 oc 了,一 面从十点开始面的,面完已经十二点了,当天下午都没有接到下一次面试的安 排,感觉自己是不是挂了。然后隔天自己打了个电话去问 HR,HR 小哥哥说正好 要找我约面试,说一面反馈不错,就等之后二面了。
快手二面(5 月 14 日 牛课视频 60min)
- 了解局部性原理吗,有哪些例子
- CPU 访问寄存器的速度和访问内存的速度
- 那 CPU 的 Cache 是什么原理
- 写出 HashMap 的 put 过程,后面是根据代码当中的内容提问,也就是 HashMap 当中的一些操作
- 多生产者消费者模式实现
- 如何确定对象是否会被回收
- 可达性分析算法对应的是什么数据结构
- 指出自己写的多生产者消费者模式实现代码当中哪些是 GCRoot
- 工作内存和主内存当中分别都有些什么
- hapens-before 原则是什么,具体是什么
- invalidate 方法
- Matrix 了解吗
- 我向面试官询问可以努力的地方(理论知识掌握了,但是实践没有跟上 理论,没有很好的融会贯通)
- 面试官问我觉得自己有什么优点
- 面试官问我觉得自己什么地方需要是需要改善的
面完以后感觉情况不妙,之前加了 HR 小哥哥的微信,就赶紧去问了下结果,很 快就知道自己挂了,然后请 HR 帮我改了面试状态,就赶紧去投了快手北京的岗 位。
不是说杨超越很灵吗?我头一天换上头像,快手二面就挂了嘛。
不过快手的面试体验还是很好的,面试安排什么的效率很高,从自己的面试经 历和看过的一些面经,感觉快手的面试味道和其他家的的确有点不同。希望下 次可以通过面试吧!
网友评论