5000字超详细字节跳动Android客户端面经

在这里插入图片描述

现在,秋招马上来临,在牛客网上看了不少帖子,不少同学对大厂的面试有所忌惮,总担心准备不够。

我之前面试了好几家公司,这里总结一下自己的面经和复习历程,顺便谈谈我的一些感受,给各位朋友提供一些参考,也不要对大厂面试有抵触情绪。

我对字节跳动的一些看法

周围有很多人也都在用字节的拳头产品,今日头条、抖音、悟空问答、西瓜视频 、火山小视频、 图虫、花熊等等,这些都是字节跳动旗下的APP。字节的增速有目共睹,高 速增长其实对我们求职者是一个重大利好,它就意味着更多的机遇。虽然说今年一直都在传裁员,毕竟大环境不好,但是字节的岗位还是相对于其他大厂多上不少。

还有也是机缘巧合吧,在我准备投递的时候,(发朋友圈他看见我在找工作,所以还是要多发朋友圈)以前的同事帮我内推,递上了简历。

字节的效率还是很高的,从约面试到最后一次面试,一周结束战斗。

现在讲讲我三面时的情况,一二面和 HR 面都是凭印象回忆的,也比较容易就没写了(太多了)

在这里插入图片描述

字节跳动面试过程

1、主要是项目经验(占面试时间的40%)

没有问所有项目,你自己挑一个最难的项目来讲
突出项目难点,项目特色,项目突出贡献,要做到通俗易懂,视频面试没法画框架图

2、突出三方能力,要了解核心思想(占面试时间的20%,如果用得多可能会聊更久)

OkHttp,retrofit,RxJava,EventBus,
OkHttp基本原理,缓存原理,连接池原理,
如果每个请求都需要在url里添加字段,如何用Interceptor实现
retrofit的核心设计思想

3、android基础(占面试时间的20%)

3.1、Handler实现原理

Looper.loop()源码,即实现原理

Handler.postDelay()实现原理

基本情况是:
如果头部的这个Message是有延迟而且延迟时间没到的(now < msg.when),会计算一下时间(保存为变量nextPollTimeoutMillis),
然后在循环开始的时候判断如果这个Message有延迟,就调用nativePollOnce(ptr, nextPollTimeoutMillis)进行阻塞。nativePollOnce()的作用类似与object.wait(),只不过是使用了Native的方法对这个线程精确时间的唤醒。

如果Message会阻塞MessageQueue的话,那么先postDelay10秒一个Runnable A,消息队列会一直阻塞,然后我再post一个Runnable B,B岂不是会等A执行完了再执行?正常使用时显然不是这样的,那么问题出在哪呢?

1、postDelay()一个10秒钟的Runnable A、消息进队,MessageQueue调用nativePollOnce()阻塞,Looper阻塞;

2、紧接着post()一个Runnable B、消息进队,判断现在A时间还没到、正在阻塞,把B插入消息队列的头部(A的前面),然后调用nativeWake()方法唤醒线程;

3、MessageQueue.next()方法被唤醒后,重新开始读取消息链表,第一个消息B无延时,直接返回给Looper;

4、Looper处理完这个消息再次调用next()方法,MessageQueue继续读取消息链表,第二个消息A还没到时间,计算一下剩余时间(假如还剩9秒)继续调用nativePollOnce()阻塞;

5、直到阻塞时间到或者下一次有Message进队;

3.2、Activity的生命周期,还有各场景下,各个生命周期的回调方法

核心知识点:

onStart:start表示启动,这是Activity生命周期的第二个方法。此时Activity已经可见了,但是还没出现在前台,我们还看不到,无法与Activity交互。

onResume:resume表示继续、重新开始,这名字和它的职责也相同。Activity在这个阶段已经出现在前台并且可见了。

onPause:pause表示暂停,当Activity要跳到另一个Activity或应用正常退出时都会执行这个方法。此时Activity在前台并可见,我们可以进行一些轻量级的存储数据和去初始化的工作,不能太耗时,因为在跳转Activity时只有当一个Activity执行完了onPause方法后另一个Activity才会启动,而且android中指定如果onPause在500ms即0.5秒内没有执行完毕的话就会强制关闭Activity。

onStop:stop表示停止,此时Activity已经不可见了,但是Activity对象还在内存中,没有被销毁。

这个阶段的主要工作也是做一些资源的回收工作。

在AActivity界面点击按钮后,跳转到BActivity界面,各个activity的生命周期回调顺序

答:(A)onPause→(B)onCreate→(B)onStart→(B)onResume→(A)onStop

在A界面点击按钮后,即startActivity(B)之后调了finish()方法,各个activity的生命周期回调顺序

答:(A)onPause→(B)onCreate→(B)onStart→(B)onResume→(A)onStop→(A)onDestory

在A界面,启动了一个透明的B界面,各个activity的生命周期回调顺序

答:(A)onPause→(B)onCreate→(B)onStart→(B)onResume

在A界面,启动了一个Dialog,activity的生命周期回调顺序

答:不会回调任何函数。

在A界面,启动了一个主题是Dialog的B界面,各个activity的生命周期回调顺序

答:(等测试)

4、算法题(占面试时间20%)

面试特点:链表相关算法必须顺便,大厂常考题目,可以刷leetcode里的题目,要自己动手写,别光看题目和解析,只有自己真正思考题目,模拟考试了,才知道自己的核心问题出在哪,怎么提升

4.1、两个双向链表,返回第一个相同节点

解题思路:

寻找返回结果的特性:
第一相同节点后的内容,两个链表后半段内容都一样
如果是基于多个数据的计算,先对齐数据关键特性:
这里的关键特性就是链表的长度,便于依次对比节点相等
解决方案就是:获取链表长度,先遍历长的链表,让两个链表长度对齐
遍历数据,指针概念:
这里使用双指针概念,一个指针遍历短的链表,另外一个指针遍历长的链表

参考答案:

public ListNodetest(ListNode listNode1, ListNode listNode2) {if ((listNode1 ==null) || (listNode2 ==null)) {return null;}int length1 = length(listNode1);int length2 = length(listNode2);ListNode shortListNode = length1 > length2 ? listNode2 : listNode1;ListNode longListNode = length1 > length2 ? listNode1 : listNode2;int offset = Math.abs(length1 - length2);for (int i =0; i < offset; i++) {if (longListNode ==null) {return null;}longListNode = longListNode.next;}while ((longListNode !=null)&& (shortListNode !=null)&& (longListNode.next != shortListNode.next)) {shortListNode = shortListNode.next;longListNode = longListNode.next;}return longListNode;
}private int length(ListNode listNode) {ListNode temp = listNode;int length =0;while (temp !=null) {length++;temp = temp.next;}return length;
}

字节HR 面

  • 评价一下自己前三面的表现?如果重来一次的话,对于答不上来的问题你会怎么办?

  • 介绍一下你的项目

  • 项目中遇到瓶颈是怎么解决的?

  • 你觉得你这个项目对你有什么提升?你觉得自己有什么优点和缺点?

  • 你打算如何去改进自己的缺点呢?

  • 你平常放松自己会通过什么方式呢?

  • 那后续的话除了字节你还打算去哪些公司呢?

  • 你是为什么打算去这些公司呢?

  • 你平常会怎么安排自己一天的时间呢?

面试总结

字节的面试体验还是相当不错的。过程中面试官会很耐心地听你讲,对于答不太上来的问题,给出大体思路也是可以的。回答不上来的东西,面试官也会在面试过程中跟你简单介绍一下。大概这就是为什么最开始 HR 和邮件里都有说“不会的题也鼓励和面试官交流想法”吧。

反问环节请面试官对面试过程进行评价,以及对个人能力提出一些建议的时候,面试官还是很乐意的,也很能抓住我的不足(废话不然为啥人家能是面试官呢)。

在开始面试之后,HR 全程跟进的速度非常快。每场面试结束之后 HR 会询问一下面试感受,还会鼓励我复盘一下。

下文中提及的资料是我之前收集的Android开发复习使用及刷题合集,供更多面试的朋友参考,共勉。

由于文章内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要2023年Android中高级最全面试真题答案 完整文档的可扫描下方卡片免费获取~

PS:(文末还有使用ChatGPT机器人小福利哦!!大家不要错过)

目录

在这里插入图片描述

第一章 Java方面

●Java基础部分
●Java集合
●Java多线程
●Java虚拟机

在这里插入图片描述

第二章 Android方面

●Android四大组件相关
●Android异步任务和消息机制
●Android UI绘制相关
●Android性能调优相关
●Android中的IPC
●Android系统SDK相关
●第三方框架分析
●综合技术
●数据结构方面
●设计模式
●计算机网络方面
●Kotlin方面

在这里插入图片描述

第三章 音视频开发高频面试题

●为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
●怎么做到直播秒开优化?
●直方图在图像处理里面最重要的作用是什么?
●数字图像滤波有哪些方法?
●图像可以提取的特征有哪些?
●衡量图像重建好坏的标准有哪些?怎样计算?

在这里插入图片描述

搭建了一个基于chatGPT的微信群聊机器人,24小时为大家解答疑难技术问题, 需要的可以扫描二维码进群。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/61777.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python详细安装教程

Python详细安装教程 Python是一个广泛使用的高级编程语言&#xff0c;也是开源社区中最受欢迎的语言之一。在这篇文章中&#xff0c;我将向大家介绍如何在不同的操作系统上安装Python。 Windows系统安装Python 在Windows系统上安装Python很简单。请按照以下步骤完成&#xf…

马斯克成功收购推特,开除CEO等多名高管,还派特斯拉工程师进驻总部审查代码...

来源&#xff1a;AI前线 作者&#xff1a;刘燕 这场连环反转“大戏”&#xff0c;终于落幕。 靴子终于落地 10 月 28 日&#xff0c;据 《纽约时报》、CNBC 、《 华尔街日报》、《华盛顿邮报》 等多家外媒报道&#xff0c;马斯克收购推特的交易已经完成。这笔 440 亿美元的收购…

已正确安装证书,但https显示连接不安全(此页面的部分内容不安全)

问题描述: 解决方法&#xff1a; 找到index.html 在<head>里添加如下代码&#xff1a; <meta http-equiv"Content-Security-Policy" content"upgrade-insecure-requests">

“与此站点的连接并非完全安全”,部署了SSL,Edge等浏览器报不安全

这个问题很简单&#xff0c;就是网站部署了SSL证书&#xff0c;实现了https加密连接&#xff0c;但网站中还是存在一些不安全的加载资源&#xff0c;即http连接&#xff0c;这个时候需要网站管理员将那些加载了http的资源&#xff0c;例如引用了http模式下的图片&#xff0c;CS…

无法安全地连接到此页面,这可能是因为该站点使用过期的或不安全的 TLS 安全设置.

问题描述&#xff1a; 网页中的链接打不开&#xff0c;页面显示如标题所述&#xff0c;原因可能是因为我之前打开了很多内容&#xff0c;后来电脑没电直接关机了&#xff0c;导致出错。 解决方法&#xff1a; 1、按住winR打开运行&#xff0c;输入inetcpl.cpl&#xff0c;点…

HTTPS站点不安全?

很多用户们发现了一个问题&#xff0c;在访问一部分https站点时&#xff0c;浏览器依旧会提示不安全。这到底是怎么回事&#xff1f;难道是SSL证书的问题&#xff0c;说好的保护数据安全的呢&#xff1f;难道SSL证书不能发挥它应有的作用了吗&#xff1f;SSL证书可以理直气壮地…

浏览器认定网站为不安全,如chrome:您与此网站建立的连接是不安全的。解决办法

原因 不属于https协议&#xff0c;仅仅是http协议。需要为web服务器部署ssl证书。 部署ssl证书方法 阿里云等平台购买ssl证书&#xff0c;并绑定域名下载证书&#xff0c;将其部署至自己使用的web服务器&#xff0c;每一个web服务器要单独部署 node.js web服务器部署方法 …

打开网站提示不安全

打开网站发现提示不安全,点击查看警告信息确认是使用的证书过期导致的。 登录aliyun主机查看定时更新证书的crontab: # crontab -l 2 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null 可以看到每天半夜会检查更新一次,…

浏览器打开网站提示此站点不安全解决方案

问题 现在几乎所有的浏览器输入栏之前都多了一个小的信息提示,用来提示用户该网站链接证书安装情况,如下图所示: 原因 这种提示不安全的情况是什么原因导致的呢? 因为该网站未采用SSL证书使用https加密连接。 这样的风险提示,会严重影响访客对该网站的信任,也确实对…

浏览器报错:此站点的连接不安全

报错提示 项目上下文与问题分析 做瑞吉外卖项目时&#xff0c;配置过静态资源路径后&#xff0c;在浏览器地址栏输入https://localhost:8080/backend/index.html 访问项目资源时浏览器出现上图报错。服务器出现以下报错&#xff1a; 2023-02-15 11:11:29.088 INFO 10792 --- […

网页提示此站点不安全解决方案

网页提示此站点不安全解决方案 如果电脑可以正常上网&#xff0c;qq&#xff0c;微信可以正常使用&#xff0c;部分网页打不开&#xff0c;提示此站点不安全&#xff0c;而且也无法加载网页&#xff0c;很有可能是本地DNS缓存错误造成的&#xff0c;本人的是无法进入百度&…

初代AIGC明星独角兽,停摆在大模型元年

衡宇 发自 凹非寺量子位 | 公众号 QbitAI 唏嘘&#xff01;AIGC方兴未艾&#xff0c;但国内AIGC领域的昔日龙头独角兽&#xff0c;正站在风雨飘摇的悬崖边。 影谱科技&#xff0c;初代目AIGC明星公司&#xff0c;被爆已经面临经营不善、运营停摆的窘境。 这家成立于2009年的AI影…

淘宝/天猫上传图片到淘宝 API 调用说明 请求示例

upload_img-上传图片到淘宝 图片有3种 上传方式 1、GET参数imgcode直接传url&#xff08;适用于已经存在的网络上的图片&#xff09; 2、POST参数imgcode上传本地图片base64编码后的内容 3、FILE参数imgcode上传本地图片二进制 安卓上传本地图片使用2、3的方式。 图片不能少于…

淘宝商品详情API接口(网页版,APP端二合一接口)

接口名称&#xff1a;淘宝商品详情API接口(网页版,APP端二合一接口) 接口状态&#xff1a;已完成 接口地址&#xff1a;http://gjx.sd1118.com/api/product/info 请求方式&#xff1a;GET Content-Type&#xff1a;Text 商品详情API接口更新时间&#xff1a;2023-04-10 16:24:2…

淘宝商品详情页接口

更新与于2022年5月18号 采集淘宝商品列表和商品详情遇到滑块验证码的解决方法&#xff08;带SKU和商品描述&#xff0c;可高并发&#xff09;&#xff0c;主要是解决了高频情况下的阿里系滑块和必须要N多小号才能解决的反扒问题&#xff0c;以后都可以使用本方法了。 大家都知…

iOS 打开天猫/淘宝/京东客户端并且进入商品详情页/店铺主页的方法

今天公司的需求说需要在app里面打开手淘/天猫/京东的商品详情页或者是店铺的主页&#xff0c;在网上搜了下,打开天猫和手淘有两种方法,一种是使用 阿里百川的SDK完成,这个我还没有去尝试,我总结一下另一种可以打开的方法。 我是使用的tablView布局,数据源是dataArray,didSele…

仿淘宝详情页的商品详情

先上效果图 效果就是上面图片的效果 接下来看看如何实现 首先我们来看下布局文件 <LinearLayoutandroid:id"id/header"android:layout_width"match_parent"android:layout_height"72dp"android:paddingTop"24dp"android:backgrou…

如何抓取淘宝上的商品信息和详情页信息

来源于微擎里的人人商城里的插件&#xff0c; 采用接口&#xff1a; 第一个接口未获取基本信息接口,id为淘宝商品ID http://hws.m.taobao.com/cache/wdetail/5.0/?id .$id 第二个接口为获取商品详情信息&#xff0c;id为淘宝商品ID http://hws.m.taobao.com/cache/wdesc/…

android 仿淘宝、京东商品详情页 向上拖动查看图文详情控件

一、淘宝商品详情页效果 先看一下淘宝详情页的效果 我们的效果 二、实现思路 使用两个scrollView&#xff0c;两个scrollView 竖直排列&#xff0c;通过自定义viewGroup来控制两个scrollView的竖直排列&#xff0c;以及滑动事件的处理。如下图 三、具体实现 1、继承viewGroup自…

HTML之淘宝界面案例

特殊符号 <<br/> <!--<小于号--> ><br/> <!-->大于号--> &amp;<br/> <!--&与--> &reg;<br /> <!--已注册商标--> ©<br /> <!--©版权标记--> &trade;<br /> <!--…