被同学追问进大厂秘诀,无奈把宝典给了他...

前言

前一段时间入职了字节跳动Android工程师,朋友们得知这个消息,立马来问我有没有什么秘诀。

以现在的就业环境来说,进知名度高的大厂是每个程序员的梦想,为了帮助更多程序员能上岸自己喜欢的公司,分享一份面试字节的经验~

img

怎样的契机?

实际上,目前毕业已经两年时间了,在大学时就已经开始关注字节跳动的发展。一开始,我是电气自动化专业的,大二清楚目标之后就转计算机了,大四进了一家小型的互联网公司实习,具体就不说哪家了,这个实习工作也为日后我进字节做了很好的“铺垫”。

清楚地意识到自己的目标是字节跳动之后,就开始疯狂做功课,了解字节喜欢考算法,因此在这方面也算是下足了功夫。之后在浏览某博客时,得到了一份“高分宝典”,这份“高分宝典”在面试中帮助了我很多,就连我拿下字节offer,也是懵的。

字节跳动面试难吗?

相信很多小伙伴也很关心字节跳动的面试过程是如何的?难度怎么样?我是社招,所以相对校招,难度肯定是比较大的,因此一开始我没有太大的信心,直到两面都过了之后,心里压力才减小了不少。所以,总体来说,说难不难,说容易也不容易。

面试经历

1 面 1h 多(具体多了多少分钟忘了)

1.算法题

  • 两个栈实现队列


2.算法题

  • 输入一个数组,想一种方法让这个数组尽可能的乱序,保证功能能实现的情况下时间复杂度和空间复杂度尽可能的小,可使用随机数函数。(面试官最后说了 O(n)的时间复杂度能实现)

3.写一个单例(自己写一种就行)

4.ActivityA -> Activity B -> Activity A

Activity A 启动模式为 singleTask

Activity B 启动模式为常规模式

问A 启动 B,B 又启动 A 的生命周期调用顺序?

5.你刚才提到 onsaveinstancestate() ,说一下调用时机,它用来干什么的。

6.onsaveinstancestate() 保存的那个参数叫什么?Bundle 里面都放一些什么东西?怎么实现序列化?Parcelable 和 Serializable有什么区别?

Bundle 。

7.数组和链表的区别

8.HashMap 的结构以及原理

9.我看你简历上写了 retrofit,你能说一下它是做什么的,如果知道基本框架也说一下

10.了解 View 的绘制机制吗,能说一下吗

11.我看你项目里用的 Fragment 能说一下 Fragment A 启动了 Fragment B,Fragment B 中按下返回键只退出 Fragment B 怎么实现。

12.你还有什么要问的吗?

2 面 1h 多(具体多了多少分钟也忘了,加起来 2.5 小时的样子)

1.算法题 一个字符串,求最长没有重复字符的字符串长度

2.string stringbuffer 和 stringbuilder 区别

3.final finally finalize区别

4.数组和链表的区别

5.HashMap 了解过吗

6.Tcp 三次握手四次挥手

7.get 与 post 的区别

8.synchronized 的作用

9.你知道哪些设计模式

10.Android 进程通信的方法

11.那你能说一下 Intent 是怎么进程通信的

12.内存泄漏有哪几种情况

13.有什么要问

面试中的技巧

答不出来怎么办?

面试中有一些问题很难,但是不要放弃,要不断尝试。很多时候,面试官并不期待你能在很短的时候内解出一道难题,他只是想看一下你遇到难题时的态度和思维方式。如果你能证明给面试官看,你解决问题的方向和方法是正确的,就算是没有找到答案,也是很不错的。

尖锐问题

几个常见的比较尖锐的问题:

1、你为什么要离开现在的公司?

这种问题一般都是来问你的离职动机的,招聘方有理由相信,你是怎样离开前东家的,就会怎样离开我。如果你开始抱怨你现在的公司了,很可能会引出很多问题把你问到最后都抬不起头来。当然,你也可以说前公司的问题,比如︰自己主导的项目被公司废弃了、公司转型了、公司业绩下滑了、在现有的公司没有成长空间了…这些都是可以说的。

2、说一下你的缺点?

这个问题也是很难很难回答的。

其实任何性格的人都有问题,比如,对我来说,我个是比较着急的人,急性子,而且是个做事的人。所以,我最大的问题就是在推进一些事的时候,会忽略别人的感受。当压力变大的时候,我甚至会说出一些别人难以接受的话(俗话说的情商为零)。

但这个不是最佳方法,缺点一定要附带正面效果。比如,我对事情的要求太高了,跟我在一起工作人的压力太大。我太内向了,所以别人和我沟通起来有点费劲。我太过关心团队了,所以,有时候会忽略了项目成本和时间进度……

最后还要补一句,我知道我的缺点,我也在努力改正,我正在通过什么样的方式改正。这非常关键,因为这基本上是面试官最喜欢看到的答案了,就是你不仅能正视自己的缺点,而且还能不断地改正。

好了,暂时只能想到这些,后面如有想到其它东西再补充哈,祝想找工作的同学都能去自己心仪的公司,前程似锦!

最后

Android面试大致可以分为Java、Android、计算机网络、算法和数据结构等板块,上面的内容没有给大家做分类处理,为了大家更好的进行阅读,我将面试题放到了具体的板块来进行解读,帮助大家掌握最新的面试题考点。

《2022最新Android中高级面试真题汇总+解析》

img

面试题合集分为9个部分:Java基础、Android基础、UI控件篇、网络通信篇、架构设计篇、性能优化篇、源码流程篇、新技术篇、面试篇,共1932页!

第一章 Java基础

  • 静态内部类和非静态内部类的比较
  • 多态的理解与应用
  • java方法的多态性理解
  • java中接口和继承的区别
  • 线程池的好处,详解,单例(绝对好记)
  • 线程池的优点及其原理
  • 线程池的优点(重点)
  • 为什么不推荐通过Executors直接创建线程池
  • 不怕难之BlockingQueue及其实现
  • 深入理解ReentrantLock与Condition
  • Java多线程:线程间通信之Lock
  • Synchronized 关键字原理
  • ReentrantLock原理
  • HashMap中的Hash冲突解决和扩容机制
  • JVM常见面试题
  • JVM内存结构
  • 类加载机制/双亲委托

img

第二章 Android基础

  • Activity知识点(必问)
  • Fragment知识点
  • Service知识点
  • Intent知识点

img

第三章 UI控件篇

  • 屏幕适配
  • 主要控件优化
  • 事件分发与嵌套滚动
  • 动态化页面构建方案

img

第四章 网络通信篇

  • 网络协议

第五章 架构设计篇

  • MVP架构设计
  • 组件化架构

第六章 性能优化篇

  • 启动优化
  • 内存优化
  • 绘制优化
  • 安装包优化

img

第七章 源码流程篇

  • 开源库源码分析
  • Glide源码分析
  • Android面试题:Glide
  • day 20 面试题:Glide面试题
  • 聊一聊关于Glide在面试中的那些事
  • 面试官:简历上如果写Glide,请注意以下几点…
  • OkHttp源码分析
  • okhttp连接池复用机制
  • okhttp 流程和优化的实现
  • 一篇让你受用的okhttp分析
  • OkHttp面试之–OkHttp的整个异步请求流程
  • OkHttp面试之–HttpEngine中的sendRequest方法详解
  • OkHttp解析大总结
  • Okhttp任务队列工作原理
  • Android高频面试专题 - 架构篇(二)okhttp面试必知必会
  • Android 网络优化,使用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成
  • Retrofit源码分析
  • RxJava源码分析

img

第八章 新技术篇

  • 实战问题篇

第九章 面试篇

  • 开源文档
  • 面试文献

img

篇幅原因,文中仅以截图形式展示部分内容

1932页《2022最新Android中高级面试真题汇总+解析》 点击下方微信卡片,即可免费领取↓↓↓

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值