2024下半年,最接地气的字节跳动Android面经分享(已收offer)

蜂信物联FastBee平台https://gitee.com/beecue/fastbee

阿里资料开源项目https://gitee.com/vip204888

百度低代码前端框架https://gitee.com/baidu/amis

OpenHarmony开源项目https://gitcode.com/openharmony

仓颉编程语言开放项目https://gitcode.com/Cangjie

  • handle的原理,子线程为什么不能更新UI?

  • view的绘制过程

  • 滑动冲突

  • 接口和抽象类的区别

  • 内部类和静态内部类的区别

  • string stringbuffer stringbuilder

  • hashmap的源码结构,arraylist,linkedlist

  • 介绍jvm运行时内存结构

  • gc的三种方法复制算法怎么弄的,为什么新生代用复制,年老代用整理

  • 常量池在哪

  • 可重入锁,synchronized,volatile,对象锁类锁

  • 对象头markdowm的偏向锁轻量级锁重量级锁

  • cardtable

  • 四大引用

  • 给一个数组把重复的数字踢出去,没让写代码,讲自己的思路,想的方法越多越好

字节二面

二面面试官见到我特别和蔼,一直笑 ,这一面只有一半问技术,另一半问平时怎么学习的,之前的学习经历这种东西 :

  • 自我介绍+项目介绍

  • mvp mvvm mvc

  • mvvm和mvp区别

  • viewmodel怎么实现的,原理

  • 问我有没有了解什么异于常人的地方

  • 说说ssl tls的发展历程,http的发展历程,tcp拥塞控制的几个算法,如何实现udp的可靠传输,quic协议,dns协议的过程。

  • 之后又问我对安卓的哪些地方感觉设计的比较好

  • 自己学了安卓,感觉哪些地方比较有意思

  • kotlin

  • 内联函数,高阶函数,泛型,lambda表达式

算法题:

  • 实现一个循环队列

字节3面 三十五分钟

=====================================================================

  • 自我介绍

  • 你觉得你在同年级人里面的水平状况

  • 讲下你觉得最全面和难度最高的项目

  • 做项目的动力

  • 算法题每千位加个逗号

  • 未来的学习计划

  • 有什么问题

hr面 十五分钟左右(电话)

=========================================================================

大概问了下之前的面试体验,手上是否有其他offer,自我介绍等

感觉问得不偏基础,有些感觉必考基础题没问,第一感觉还是不难的,之后hr就直接谈到了薪资问题。说到这里就觉得这个offer是稳了。

字节面试题答案解析:

image

只有不断地努力,不停的学习,才能对你的工作和面试当中带来帮助,学习之路,犹如逆水行舟, 不进则退, 下面分享的正是我的学习方法:

准备:

这是最辛苦的阶段,你不仅要把日常的工作做好,还要开始着手准备刷题、基础知识准备以及高阶知识的准备,除此之外我还对英语进行了一些准备,本来英语就是半文盲,由于不管是想去外企、出国以及看英文的文档,英语都是必不可少的,英语在我们的日常生活中也越来越重要,我们要,整个阶段大概持续了4个多月。

其实每一次跳槽,都是对这几年工作的一个梳理和总结,虽然大家都明白“面试造火箭、进去拧螺丝”的道理,对于公司而言,这是筛选人才的一个方式,毕竟人是第一生产力,只要有优秀的人才,那么造出的火箭才可能“一飞冲天”。对于个人而言,如果公司里同事优秀的人,那么你肯定也不会差,我们肯定更希望和优秀的人一起共事。

(一)调整自己的心态,正确面对得失

面试中常见的问题,主要是心态,面试调整心态是第一位的,如何调整成最佳心态呢?很多求职者在面试过程中自己思路不清晰,语言不流畅,说话毫无逻辑,会不断否定自己,归根结底都是面试心态问题,所以调整自己的心态,正确面对得失是非常重要的,我的方法是给自己足够的心理暗示。

(二)提升技术,扩宽知识

对于程序员来说,要想成长为一名行业内的大牛大神级别的人物,那么唯一的办法就是通过学习,来不断提升自己的技术,扩宽知识,达到一定的高度和深度。那么如何提升自己的技术,扩宽自己的知识储备呢?

以下是我个人的一些做法,希望可以给各位提供一些帮助:

  • 准备简历

简历是门面,更是敲门砖,能否拿到大厂的面试机会,就要看自己的简历如何,抛开学历以外,大厂最看重简历是否有亮点,因此我们对简历内容要有准备,对自己的突出点,包括技术、个性上的亮点,要练习表达,避免临时组织语言。

优质简历范本:

  • 68天啃完546页的pdf文档(时间挤一挤,制定好计划)

一旦下定决心要提升自己,那么再忙的情况下也要每天挤一挤时间,切记不可“两天打渔三天晒网”。另外,制定好学习计划也是很有必要的,有逻辑有条理的复习,先查漏补缺,然后再系统复习,这样才能够做到事半功倍,效果才会立竿见影。

文中所有资料都可在我的GitHub上免费下载。

一、Android部分:

1.第五大组件FragmentAndroid知识体系总结之Android部分之Fragment篇

2.对话框 & 弹框 & 通知 & 悬浮窗之 WMS 源码篇

3.Android UI控件篇 高级自定义View, 主要是原理和手写实现

4.Android 系统架构篇

5.Android 通信篇

6.Android Framework 源码篇

7.Android 网络编程篇

8.原生音视频图片开发篇[非JNI]

9.Android 特殊知识点【不知道如何分类的知识点】

10.Android 必须掌握的轮子 原理篇

11.Android 架构篇

12.Android 优化篇

13.Android 职业方向篇(有正确的职业方向,才能不浪费自己的职业生涯)

14.Android 工作工具篇

15.Android 工作必备技能篇

16.Android 跨平台开发篇

二、Java部分:

1.JVM

2.static

3.final

4.String. StringBuffer. StringBuilder

5.异常处理

6.内部类

7.多态

8.抽象和接口

9.集合框架

10.反射

11.单例

12.多线程

13.volatile

14.synchronized

15.Lock

16.引用类型

17.动态代理

18.元注解

三、 Kotlin 部分

1.Kotlin Primer · 第一章 · 启程

2.Kotlin Primer · 第二章 · 基本语法

3.Kotlin Primer · 第三章 · Kotlin 与 Java 混编

四、计算机网络部分

1.计算机网络体系结构

2.HTTP相关

3.TCP相关

4.Socket

作者2013年从java开发,转做Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。

参与过不少面试,也当面试官 面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!

我整理了一份阿里P7级别的最系统的Android开发主流技术,特别适合有3-5年以上经验的小伙伴深入学习提升。

主要包括阿里,以及字节跳动,腾讯,华为,小米,等一线互联网公司主流架构技术。如果你想深入系统学习Android开发,成为一名合格的高级工程师,可以收藏一下这些Android进阶技术选型

我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。

Java语言与原理;
大厂,小厂。Android面试先看你熟不熟悉Java语言

高级UI与自定义view;
自定义view,Android开发的基本功。

性能调优;
数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。

NDK开发;
未来的方向,高薪必会。

前沿技术;
组件化,热升级,热修复,框架设计

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,CodeChina上可见;

当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。

不出半年,你就能看出变化!

[外链图片转存中…(img-vSg1oiHB-1725116763891)]

NDK开发;
未来的方向,高薪必会。

[外链图片转存中…(img-DC0ECRiq-1725116763892)]

前沿技术;
组件化,热升级,热修复,框架设计

[外链图片转存中…(img-IjEszAaw-1725116763892)]

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,CodeChina上可见;

当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。

不出半年,你就能看出变化!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值