距离上次跳槽已经过了3年多,突然看到字节的HR来捞。想着自己好久没面了,就打算去试试看。

0. 准备

视频面试,不用去现场真的太赞了。由于项目比较忙,自己又不是特别想跳槽,所以没怎么准备。面试当天看了一篇面经找找感觉。

1. 自我介绍

面试前我以为自己多年老油条是不会紧张的,但是打开了视频开始面试还是难免紧张了起来,感觉脑子都不灵活了。自我介绍又没怎么打过腹稿,导致开始就有点卡壳。不过自己的主要经历是讲出来了。

2. 面试题

接下来就直接开始了,先是问了简历上做的东西,感觉自己答的没什么毛病。下面分享下问的问题和自己的回答。

1.View的事件分发(具体详细)

事件分发我是有跟过源码的,一开始就想从InputMethodService讲起来突出自己。但讲的时候发现很多细节都忘了,只好匆匆介绍起了dispatch、intercept、onTouch这些。

2.内存问题一般如何处理?

讲了下内存泄漏、内存溢出的排查和修复。

3.死锁导致的ANR,如何排查?

这个问题我真的一下子没有get到,就介绍了下ANR。现在我回想过来,应该是想考察我是不是分析过traces.txt文件?从trace文件里可以看出线程的状态,如果死锁了可以看到主线程是block的。

4.插件资源加载如何热修复?

讲了下插件资源加载遇到的ID冲突如何解决。

这里我估计漏了答反射Asset相关的点了,因为他一直问还有什么。我觉得插件反射Asset应该是常识吧,不应该是要考这个。。。

5.讲讲Binder?

回答了一次拷贝的原理。

自己回答的有点乱,这就是没有准备的下场,明明脑子里架构图都出来了,但是表述的时候卡壳了。

6.ConstraintLayout 如何减少布局层级的?

答:通过各个View之间的约束关系来做,不像LinearLayout这种定死了布局方向。

面试官好像不是很满意。

7.Android如何加载长图?

我回答是:只加载需要显示的部分,剩余的部分按需加载。

面试官显然不满意,想要问细节。

我不会。。。

这个在博客中看到过,系统有提供相关类来处理,但是我确实没有实践过。没有答好。

8.算法

https://www.nowcoder.com/questionTerminal/2569018b80044c4fab95b4d6752fbccf?

算法是我的弱项,又好久没有刷题了,这道小算法题愣是卡了我好久。有点尴尬

3. 总结与反思

很多基础的知识点都没有复习,没有在脑子里过一遍,导致面试的时候表述不明确。很多细节也是忘记了,不敢瞎答。

算法还是要加强,多做题,主要是坚持,保留这个习惯才好。

面试考察的是平时的积累,有些问题是我平时处理以及解决过的,但面试过程中却不能很好的把自己的解决方案表达出来。看来我平时的总结还是不够,遇到问题解决后没有再好好归纳,很快就忘记了。以后要多多加强,分析过的问题最好是整理输出博客,并时时温习。

Android面试-字节一面的更多相关文章

  1. 5年Android程序员面试字节跳动两轮后被完虐,请查收给你的面试指南

    大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助. 最近跟一个朋友聊天,他准备了几个月,刚刚参加完字节跳动面试,第二面结束后,嗯,挂了- 所以 ...

  2. 一周内被程序员疯转3.2W次,最终被大厂封杀的《字节跳动Android面试手册》!

    一眨眼又到金三银四了,不知道各位有没有做好跳槽涨薪的准备了呢? 今天的话大家分享一份最新的<字节跳动Android面试手册>,内容包含Android基础+进阶,Java基础+进阶,数据结构 ...

  3. Android面试总结 (转)

    1. 下列哪些语句关于内存回收的说明是正确的? (b) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释放内存 D. 内存回收程序可以在指 ...

  4. Android面试题目及其答案

    转自:http://blog.csdn.net/wwj_748/article/details/8868640 Android面试题目及其答案 1.Android dvm的进程和Linux的进程, 应 ...

  5. Android面试题目2

    1. 请描述下Activity的声明周期. onCreate->onStart->onRemuse->onPause->onStop->onRestart->onD ...

  6. 月薪20k+的Android面试都问些什么?(含答案)

    金九银十跳槽季接近尾声了,可是今年由于疫情的影响仍然不太好找工作,相信大家肯定急需一套Android面试宝典,下面就分享给大家我珍藏已久的Android高阶面试宝典,供大家学习 ! 1.自定义Hand ...

  7. 30K入职腾讯,全靠这份606页的Android面试指南

    前言 光阴似箭,日月如梭,时间真的过得飞快. 加上实习,从事 Android 开发,差不多有 5 年了.在上家公司职务.薪酬感觉已经到达了天花板,没有上升的余地.而且在这家公司过于安逸了,想换个有挑战 ...

  8. Android面试中多说这么一句话,薪水直接涨5k

    小鱼同学最近很难受,明明获得了人人羡慕的大厂Offer,走在路上都能被熟人祝贺,学弟学妹争着抢着求他进行经验分享. 但有件事一直让他很介意.其实这件事起因很简单,是关于这份Offer的薪资问题,面试的 ...

  9. Android面试一天一题(1Day)

    写在前面 该博客思路源于在简书看到goeasyway博主写的Android面试一天一题系列,无copy之意,仅为让自己总结知识点,成长一点点.先感谢各位大神的无私分享~! 关于题目,大部分则出自And ...

  10. 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18) eoe上看到的

    ===============eoeAndroid社区推荐:======================= 1.Android开发新浪面试题[开发者必看哦]下载地址 http://www.eoeand ...

随机推荐

  1. JSP利用AJAX实现页面即时校验验证码

    在JSP页面实现验证码校验文章中当时是使用的Servlet类来进行的验证码校验,但是这种方式并不能即时校验,在正常情况下都是直接在用户输入之后就进行校验,这样对用户来说很方便的. AJAX 即&quo ...

  2. VsCode搭建一个React项目

    安装Node.js 使用 npm -v检查安装成功 目前的 node 中都会自带 npm 所以不需要重新下载 直接切换至淘宝镜像即可 1.临时使用 :npm --registry https://re ...

  3. beanshell报错:Error invoking bsh method: eval解决办法(beanshell 不支持Java中的泛型)

    起因:在beanshell中读取CSV文件中的内容,相同的代码在IDEA中可以执行通过,但是在beanshell中报错: ERROR o.a.j.u.BeanShellInterpreter: Err ...

  4. Day30:ArrayList详解

    ArrayList 1.1 集合概述 当我们要存储多个数据时,固定长度的数组存储格式已经满足不了我们的需要了,且不能满足变化的需求: Java中集合类则可以解决我们的需求 特点:提供一种存储空间可变的 ...

  5. 全都会!预测蛋白质标注!创建讲义!解释数学公式!最懂科学的智能NLP模型Galactica尝鲜 ⛵

    作者:韩信子@ShowMeAI 机器学习实战系列:https://www.showmeai.tech/tutorials/41 深度学习实战系列:https://www.showmeai.tech/t ...

  6. Day36:List详解

    List 1.1 概述 List为Collection的子接口,代表的一组任意对象,有序,有下标.元素可以重复. 1.2 方法 方法名 说明 void add(int index,Object o) ...

  7. Redis的数据持久化

    介绍 Redis 的数据持久化方案 Redis 的数据持久化主要有两大机制,AOF 日志和 RDB 快照. AOF 持久化是通过保存 Redis 服务器所执行的写命令来记录数据库状态. RDB 持久化 ...

  8. Request.Form&Request.QueryString实现伪ajax的效果

    1.问题描述 最近一直在搞公司老系统的需求开发,前端是asp,后端的vb.碰到了一个需求,是做一个"日志查询"功能,查询条件为:时间&操作人. 原本我的设计思路是异步查询, ...

  9. [深度学习] ubuntu18.04配置深度学习环境笔记

    最近装过很多ubuntu18.04系统的nvidia驱动,cuda10.2,cudnn7.6.5,发现每次都会出现一些小问题.总结了具体步骤,做个记录.主要分为三个步骤:驱动安装,cuda安装,cud ...

  10. 1_ES6中拓展运算符的使用

    一,拓展运算符(...) 拓展运算符(...):它会以参数序列的形式输出,更白话讲,比如数组,它可以把数组里面的东西一个一个的输出出来,例如 1 let arr1 =["你",&q ...