新人报道,没有什么可分享的,就记录一些自己求职的体会和心得。

我是在校招补录的时候参加了今日头条的招聘,岗位是Android开发,最后成功拿到了入场券。但是这也丝毫不值得骄傲,大家都知道:技术日新月异,要是几个月不更新自己的技术栈,就会被时代淘汰。

(更何况大佬那么多,我不过是个才入门的小弱鸡~)

以下是我总结进入头条的两大决定性因素:

一是,刷面经和笔试题非常关键。你将会在搜集资料的过程中了解到头条系的状况,具体岗位所面临的问题和笔面试的风格特征,做到有备无患。

二是,面试官会更偏爱逻辑思维强的人,因为这种人往往能一下子抓住问题的重点,思维更加严谨,做事更加高效。

(题目顺序有些不分先后,但大致有序)

一面

都说字节的面试难度偏高,带着忐忑的心情来到面试,没想到面试官是一个和蔼可亲的爷爷型面试官,很快放稳了心态,开始面试。

  • 上来先常规自我介绍然后讲项目
  • recyclerview的缓存机制
  • glide的缓存机制
  • 从glide缓存的lruCache出发让我讲一下自己怎么实现,一开始只说到了链表,后来面试官提醒效率,于是回答到了linkedHashmap
  • glide缓存的弱引用说到安卓四大引用还有在项目中的使用
  • hashmap问得比较详细
  • == equals
  • handler机制
  • 算法题是两个升序链表合并

总的来说这次面试体验还是特别不错的,面试官问的问题感觉一层套一层,往往在回答中说到了某个知识点,接着下个问题就会以这个知识点开始。

当天面试由于比较紧张,让两个小伙伴给我面了两个小时,口干舌燥的参加面试,脑子也比较乱哄哄,handler的一个简单问题总是集中不了精神,还好面试官比较有耐心没有给我提前结束。

隔了7天的早上收到了二面通知,冲!

二面

下午6点钟开始面试,面试官不苟言笑显得非常专业,简单调试之后开始面试。

  • 先是常规自我介绍+项目
  • Glide缓存
  • 图片优化(讲了项目里面oss存储的取缩略图方法,还有Bitmap相关的decodeResourse方法相关)
  • Bitmap
  • Glide中的LruCache以及实现
  • 讲几个熟悉的数据结构(把整个Collections和Map讲了个遍)
  • LinkedList查找优化
  • 追问HashMap
  • TreeMap中红黑树
  • SparseArray
  • 算法题是ipv4地址转32位int输出(不会位操作符然后面试官提示用了乘2的方法)
  • ipv6
  • TCP
  • http几个版本的不同
  • https
  • 对称加密、非对称加密
  • RSA实现
  • 安卓中网络请求子线程回调UI线程怎么弄(runOnUIThread、Handler)
  • 多线程
  • 线程池
  • 操作系统中的线程竞争问题
  • synchronize
  • 自旋锁
  • volatile(原子性?)
  • CAS

总用时90分钟。

这次面试依然感受到了字节面试官的耐心温柔与专业,卡住时面试官会引导问题的回答,总体感觉如沐春风,不知不觉就一个半小时了。面到一半面试官说看得出来我准备了很多(内心两行泪,确实是背地里刷了上千道面试题)

最后聊了聊部门的工作方向和工作时间安排,面试很顺利。

三面

  • 自我介绍,介绍了自己实习写的刷新加载的组件
  • 问我自己组件里怎么解决的嵌套滑动冲突,三个方面实现完美分发事件
  • retrofit 动态***里面如果传的不是 interface 怎么办,这块我不清楚,我就直接说不太清楚,然后说了 retrofit 关于注解的处理
  • 注解生命周期,编译时注解解析
  • 你用过 weex,说下weex实现原理,我说我没有看过 weex 源码,但是我实现过一个动态页面渲染框架,说了下我的渲染过程和实现方案。
  • 最近想学的技术,说了音视频,但是因为准备秋招放下了
  • 为什么想学,说了自己之前做一个 APP,里面播放器无法使用没认证的 Https 请求,打算自定义一个播放器,在底层处理证书这块,然后在说了下不知道这样的方案可不可行。
  • okhttp 里面怎么认证的, 说了拦截器
  • ConcurrentHashMap 同步方案, 然后问了 CAS
  • 环状链表

隔了两天查到了到HR面的通知,内心又高兴又打问号,自己都不知道自己怎么过的。

HR终面

  • 询问了除字节跳动以外,还在看其他工作机会么?分别是什么
  • 字节、XXX公司、XXX公司,你的优先级是什么,为什么?
  • 实习薪资待遇是多少?你期望的薪资是多少?
  • 平时有什么爱好?
  • 了解职位需求吗?
  • 有没有想问的?

面试总结

总的来说,自己如果有想要去的大公司,一定要提升好自己,技术能力的高低能决定你走多远,平台的高低,能决定你的高度。我也一直相信,机会永远是留给有准备的人。

在字节面试前我也准备了很久,刷了超多2020年最新的大厂面试真题,整理出了一份一线互联网面试最新全套真题解析,知识点整理出来分享给大家:

笔记内容全部免费分享,有需要完整版笔记的小伙伴【点击我】免费获取哦!

Android 相关

1. Android 之 SharedPreferences 内部原理浅析
2. Android 源码分析-消息队列和 Looper
3. Android 源码分析—带你认识不一样的 AsyncTask
4. Android 性能优化之使用线程池处理异步任务
5. Android Context 完全解析,你所不知道的 Context 的各种细节
6. LocalBroadcastManager 的实现原理,与 BroadcastReceiver 异同
7. Android进程间通信(IPC)机制Binder简要介绍和学习计划
8.Activity的启动方式和flag详解
9.Android源码分析-资源加载机制
10.Android中Thread、Handler、Looper、MessageQueue的原理分析
11.Android 源码解析 之 setContentView
12.Android AsyncTask 源码解析
13.Android IntentService完全解析 当Service遇到Handler
14.深入剖析 Android中的 ArrayMap

360 °全方面性能调优

1.设计思想与代码质量优化
2.启动速度与执行效率优化
3.布局检测与优化
4.内存优化
5.耗电优化
6.网络传输与数据存储优化
7.APK大小优化
8.开发效率优化
9.项目实战

笔记内容全部免费分享,有需要完整版笔记的小伙伴【点击我】免费获取哦!

Java 相关

1.Java 四种线程池的用法分析
2.Java 有几种文件拷贝方式?哪一种最高效?
3.使用 FileChannel(文件通道)来实现文件快速复制
4.JVM 类加载机制详解 JVM 类加载过程
5.JVM 类加载机制详解类加载器与双亲委派模型
6.Java 实现线程同步的几种方式
7.Java IO 流之字节流与字节缓冲流
8.Java内存管理:深入Java内存区域
9.Java垃圾回收
10.Java中的ThreadLocal

Kotlin 相关

1.从原理分析 Kotlin 的延迟初始化: lateinit var 和 by lazy
2.From Java To Kotlin
3.怎么用 Kotlin 去提高生产力:Kotlin Tips
4.使用 Kotlin Reified 让泛型更简单安全
5.Kotlin 里的 Extension Functions 实现原理分析
6.Kotlin 系列之顶层函数和属性
7.Kotlin 兼容 Java 遇到的最大的 “坑”
8.Kotlin 的协程
9.Kotlin 协程「挂起」的本质
10.资源混淆是如何影响到Kotlin协程的

网络相关

1.(建议精读)HTTP 灵魂之问,巩固你的 HTTP 知识体系
2.HTTPS 原理浅析及其在 Android 中的使用
3.HTTP 断点续传(分块传输)
4.HttpDns 原理是什么
5.《客厅 TV-APP HttpDNS 技术接入与实战》
6.HttpDns 接入以及全局替换的实现
7.TCP、UDP、HTTP、SOCKET 之间的区别
8.TCP 与 UDP 的区别

插件化&热修复&模块化&组件化 &增量更新&Gradle

1.Android 插件化库比较
2.深入理解 Android 插件化技术
3.插件化(不同插件化机制原理与流派,优缺点。局限性)
4.热修复
5.模块化实现(好处,原因)
6.项目组件化的理解
7.Android Gradle Plugin 源码分析
8.Android Gradle Plugin 源码阅读与编译

笔记内容全部免费分享,有需要完整版笔记的小伙伴【点击我】免费获取哦!

图片相关

1、 图片库对比
2、LRUCache 原理
3、图片加载原理
4、自己去实现图片库,怎么做?
5、Glide 源码解析
6、Glide 使用什么缓存?
7、Glide 内存缓存如何控制大小?
8.Fresco 图片框架内部实现原理探索

Flutter 相关

1.Flutter 原理与实践
2.揭秘 Flutter Hot Reload(原理篇)
3.Flutter 动态化探索
4.Flutter 如何和 Native 通信-Android 视角
5.深入理解 Flutter Platform Channel
6.Flutter Engine 编译指北
7.深入理解 Flutter 多线程
8.Flutter 状态管理 - 初探与总结
9.Flutter | 状态管理指南篇——Provider
10.深入理解Flutter应用启动
11.Flutter渲染机制—UI线程

由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

笔记内容全部免费分享,有需要完整版笔记的小伙伴【点击我】免费获取哦!

双非本科字节跳动Android面试经验和心得体会分享(已拿offer)的更多相关文章

  1. 双非本科字节跳动Android面试题分享(已拿offer)

    基本情况 本人系非985非211普通本科生一枚,有实习有项目经历但成绩普通,在面试前刷了很多面经.面试题,这里也把自己的分享下,做个回报好了,顺便攒攒人品,一到这种时候人就迷信起来了. 面试是以视频面 ...

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

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

  3. 2021年最新字节跳动Android面试真题解析

    概述 时间过得是真TM快,回想自己是16年从学校毕业,现在是出来工作的第五个年头啦.在不同的大小公司都待过,就在前段时间顺利的完成了一次跳槽涨薪,面试了几家公司,最终选择了字节跳动.今特此前来跟大家进 ...

  4. 字节跳动Android面试凉凉,挥泪整理面筋,你不看看吗?

    想在金九银十找工作的现在可以开始准备了,这边给大家分享一下面试会遇到的问题. 找工作还是需要大家不要担心,由于我们干这一行的接触人本来就不多,难免看到面试官会紧张,主要是因为怕面试官问的答不上来,答不 ...

  5. 双非本科Android开发,如何逆袭拿到大厂 Offer?

    从2020年3月18日投出第一份暑期实习简历至今,已经过去400多天.我也尘埃落定,即将去CVTE做Android开发. 休息了很长时间,如今已经能够很平静地回首这段历程,写下这篇文,致敬曾经走过的漫 ...

  6. 字节跳动Android实习面试难吗,应该如何应对?

    字节跳动的面试难不难其实很难去非常准确的定义,但是能肯定的一点是,字节跳动的面试题都很有水平,真正考察了该岗位在以后工作中需要的能力. 大学学的Java后面又自学Android方向,跟着老师在实验室做 ...

  7. 非科班双非本科投的337家Java后台(励志)

    考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默想起来一个声音:”乔戈里峰” 前言 文章出自h ...

  8. 谁说双非本科就一定无缘阿里?H哥粉丝6面通过,喜提Offer!

    本文来自作者投稿(原作者:小胖儿),原作者是一位2021届本科毕业生,就读于一所双非(非985.非211)院校,在今年2月份的时候,我曾经帮他指导过简历,并且根据他的简历内容帮他提了一些可能会问到的问 ...

  9. 字节跳动Android春招,三轮面试,夺命连环问,心态崩了

    我是春招参加字节面试的,现在已经入职俩月啦,当时没有及时记录下来拖到现在...我尽量回忆当时的内容希望能帮到大家. 投的部门是深圳字节影像,不得不说这个部门的效率,上午投下午就接到hr的电话约面试时间 ...

随机推荐

  1. 实现opcache加速php7.X

    一.环境准备 操作系统:Centos8.3.2011 软件:PHP7.2.24 二.安装过程 1.安装软件 [20:03:29 root@centos8 src]#dnf -y install php ...

  2. Retrofit使用Kotlin协程发送请求

    Retrofit2.6开始增加了对Kotlin协程的支持,可以通过suspend函数进行异步调用.本文简单介绍一下Retrofit中协程的使用 导入依赖 app的build文件中加入: impleme ...

  3. [网络编程]mqtt概念&数据包

    目录 前言 1. MQTT 简介 2. MQTT 通信模型 2.1 MQTT 协议 2.2 MQTT 协议中的订阅&主题&会话 2.3 MQTT 协议中的方法 3. MQTT 协议数据 ...

  4. Linux导出未越狱Iphone10.3-QQ聊天记录

    起因 手机当中的聊天记录已经快两年没有备份了,生怕某天QQ版本升级中丢失掉这些聊天记录,所想将这两年的聊天记录保存下来 查找了好多资料,结果10.3以后,IOS改变了策略,貌似不允许通过以前方法导出了 ...

  5. Shell中[和[[的异同

    1.     概念上来说 "[[",是关键字,许多shell(如ash bsh)并不支持这种方式.ksh, bash(据说从2.02起引入对[[的支持)等支持."[&qu ...

  6. git rebase 和 git merger

    & git merge 在上图中,每一个绿框均代表一个commit.除了c1,每一个commit都有一条有向边指向它在当前branch当中的上一个commit. 图中的项目,在c2之后就开了另 ...

  7. 对抗攻击(一) FGSM

    引言 在对抗样本综述(二)中,我们知道了几种著名的对抗攻击和对抗防御的方法.下面具体来看下几种对抗攻击是如何工作的.这篇文章介绍FGSM(Fast Gradient Sign Method). 预备知 ...

  8. 以太网MAC地址组成与交换机基本知识

    以太网MAC地址 MAC地址由48位二进制组成,通常分为六段,用十六进制表示,工作在数据链路层. 数据链路层功能: 链路的建立,维护与拆除 帧包装,帧传输,帧同步 帧的差错恢复 简单的流量控制 第八位 ...

  9. Linux必备命令 - 常用命令集

    默认进入系统,我们会看到这样的字符: [root@localhost ~]#,其中#代表当前是root用户登录,如果是$表示当前为普通用户.cd 命令 cd  /home  :解析:进入/home目录 ...

  10. golang开发:Error的使用

    Error是Go语言开发中最基础也是最重要的部分,跟其他语言的try catch的作用基本一致,想想在PHP JAVA开发中,try catch 不会使用,或者使用不灵活,就无法感知到程序运行中出现了 ...