字节跳动头条研发---测试开发一面面经(附答案)

程序员小捣 程序员小捣     2022-12-14     476

关键词:

你好,我是测试开发工程师——小捣。 欢迎和我交流测试领域相关问题(测试入门、技术、python交流都可以)。

因为读者里有不少刚入门测试的同学,这两天抽空整理了一份字节测开实习的面试题答案,说实话这个题目真挺简单的,如果你面大厂碰到此类面试题,也算是运气很好啦。大家也可以先自测一下,看看自己能不能答上来。

如果觉得有些知识点只是了解,但一问又说不上来的话,建议面试前去补补基础。我高中数学老师的口头禅就是:“半懂不懂,就是不懂。”

字节跳动头条研发—测试开发一面面经
1.自我介绍

2.http和https的区别

HTTP 协议传输的数据都是未经加密的,即明文的,因此使用 HTTP 协议传输隐私信息不安全。为了保证隐私数据能够加密传输,于是SSL 协议用于对 HTTP 协议传输的数据进行加密,即 HTTPS;

HTTPS 协议是 HTTP + SSL 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 更加安全,两者的区别主要有:

1.HTTPS 需要到 CA 申请证书,一般免费证书较少,因此需要一定费用;
2.HTTP 是超文本传输信息,信息是明文传输;HTTPS 是具有安全性的 SSL 加密传输协议;
3.HTTP 和 HTTPS 使用的是完全不同的连接方式,HTTP 默认使用 80 端口,而 HTTPS 默认使用 443 端口;
4.HTTP 的连接简单,是无状态的;而 HTTPS 是 SSL + HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全;
3.http状态码

HTTP状态码大致分类如下:

1xx:消息类,服务器收到请求,需要请求者继续执行操作

2xx:成功类,请求被成功接受并处理

3xx:重定向类,需要进一步操作完成请求

4xx:客户端错误类,客户端请求出错,服务器无法处理请求

5xx/6xx:服务器错误类,服务器处理请求出错

较为常见的几种状态码:

【1xx】

100 -(Continue): 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。

101 -(Switching Protocols):切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议。

【2xx】

200 -(OK):请求已成功,请求所希望的响应头或数据体将随此响应返回。

201 -(Created):已创建。成功请求并创建了新的资源。

【3xx】

301 -(Moved Permanently):永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。

302 -(Found):临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI。

304 -(Not Modified):未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。

【4xx】

400 -(Bad Request):客户端请求的语法错误,服务器无法理解。

403 -(Forbidden):服务器理解请求客户端的请求,但是拒绝执行此请求。

404 -(Not Found):服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面。

【5xx】

500 -(Internal Server Error):服务器内部错误,无法完成请求。

502 -(Bad Gateway):充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。

503 -(Service Unavailable):由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中。

504 -(Gateway Time-out):充当网关或代理的服务器,未及时从远端服务器获取请求。

4.http劫持

大多数情况是运营商HTTP劫持,当我们使用HTTP请求请求一个网站页面的时候,网络运营商会在正常的数据流中插入精心设计的网络数据报文,让客户端(通常是浏览器)展示“错误”的数据,通常是一些弹窗,宣传性广告或者直接显示某网站的内容。

HTTP 劫持的实现原理

用户的浏览器访问网页,发送HTTP请求,运营商的路由器会在TCP链接中,过滤出HTTP请求,并进行标识。

随后,抢在被访问的网站正常响应前,对此次浏览器发起的请求进行重定向,然后将被访问的网站正常响应数据包丢弃掉;

或者是运营商路由器接收了网站正常响应,然后对响应的HTML代码进行“加工修改”,比如:加了一段恼人的广告,然后再把修改后的HTML代码扔给浏览器进行渲染。(其实跟中间人代理的原理差不多)

从上述原理中看出,如果需要进行HTTP劫持,首先需要进行标记:如果是HTTP协议,那么进行劫持,否则不进行劫持。

5.URL响应【题目不明确】

6.线程与进程的区别

进程是资源分配的最小单位,线程是程序执行的最小单位。

进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很位。

线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。

但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。

7.线程间通信方式

锁机制:包括互斥锁、条件变量、读写锁。

互斥锁提供了以排他方式防止数据结构被并发修改的方法。

读写锁允许多个线程同时读共享数据,而对写操作是互斥的。

条件变量可以以原子的方式阻塞进程,直到某个特定条件为真为止。对条件的测试是在互斥锁的保护下进行的。条件变量始终与互斥锁一起使用。

信号量机制(Semaphore):包括无名线程信号量和命名线程信号量

信号机制(Signal):类似进程间的信号处理

线程间的通信目的主要是用于线程同步,所以线程没有像进程通信中的用于数据交换的通信机制。

这个答案更加丰富:有四种。

8.实现多线程的方式

JAVA多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。

其中前两种方式线程执行完后都没有返回值,后两种是带返回值的。

9.西瓜视频的用例测试

题目不太明确,这里给出一些测试点,大家可以再进行扩充。
10.兼用(软件、硬件、网络) 【题目不明确】

11.抖音有哪些需要改进的地方?刷不出来时怎么定位测试?

定位测试:

确认网络环境是否正常
抓包看接口返回
查看服务端日志

12.DNS【题目不明确】

13.http和tcp/ip分别在哪一层

HTTP:应用层

TCP:传输层

IP:网络层

14.sleep()和wait()方法的区别

本题应该考察的是Java的知识点:

类的不同:

sleep() 来自 Thread,
wait() 来自 Object。

释放锁:

sleep() 不释放锁;
wait() 释放锁。

用法不同:

sleep() 时间到会自动恢复;
wait() 可以使用 notify() / notifyAll()直接唤醒。

使用方法范围不同:

sleep可以使用在任何代码块
wait必须在同步方法或同步代码块执行

生命周期:

当线程调用wait()或者join时,线程都会进入到waiting状态,当调用notify或notifyAll时,或者join的线程执行结束后,会进入runnable状态
当线程调用sleep(time),或者wait(time)时,进入timed waiting状态

15.深拷贝和浅拷贝

浅拷贝只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝(例:assign())

深拷贝是将对象及值复制过来,两个对象修改其中任意的值另一个值不会改变,这就是深拷贝(例:JSON.parse()和JSON.stringify(),但是此方法无法复制函数类型)

16.JDK、JRE【题目不明确】

JDK:JAVA开发工具包

JRE:JAVA运行环境


一面部分到此结束。

如果你也在准备字节跳动的面试,那么祝你顺利上岸!

以上,希望能帮到你。

我整理了一份216页软件测试大厂面试题,以及2021推荐最新的简历模板,送给小伙伴们,关注公众号软件测试小dao自行领取,和一些小伙伴建立一个技术交流群,一起探讨技术,分享技术资料,旨在共同学习进步,如果感兴趣就加入我们吧!644956177

燃烧秀发输出内容,如果有一丢丢收获,点个赞鼓励一下吧!

10.22字节跳动--ios开发实习生--一面面经

一共面了70分钟,挺久的。一开始上来就是简单的自我介绍,由于本人是第一次面试,所以就稀里糊涂的说了一堆,自以为说的多了就好,基本上就是想到什么说什么,毫无逻辑可言。然后就是问我大学里... 查看详情

用时一个半个月,七月刚入职字节跳动的测试开发面试题,内附答案(代码片段)

朋友入职已经两周了,整体工作环境还是非常满意的!所以这次特意抽空给我写出了这份面试题,而我把它分享给小伙伴们,面试&入职的经验!大概是在5月中的时候他告诉我投递了简历,7月的时候经... 查看详情

字节跳动十年经验老鸟,耗时大半年整理的软件测试面试真题附答案

软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使... 查看详情

我惊了!字节跳动测开面试题竟然这么简单......

...懂不懂,就是不懂。”字节跳动头条研发—测试开发一面面经(答案)1)自我介绍2)http和https的区别HTTP协议传输的数据都是未经加密的,即明文的,因此使用HTTP协议传输隐私信息不安全。为了保证隐... 查看详情

从阿里到字节,8月最新字节一面面经与答案解析(代码片段)

前言金九银十临近,想要涨薪就看这一波了~最近看到阿里频繁上热搜,对这个公司的某些文化还是不敢苟同,所以我最后还是去了字节,去的是Java研发部门,现在已经拿到offer了,趁着入职之前有时间过... 查看详情

2022字节跳动数仓实习面经(23面hr面)

...往期内容感兴趣的同学可以查看如下内容👇:2022字节一面面经:2022字节跳动数据仓库实习面经.2022字节被拒面经:2022暑期实习字节跳动数据研发面试经历.2022百度面经:2022百度大数据开发工程师实习面试经历.下面我将对2 查看详情

2022暑期实习字节跳动数据研发面试经历

🌟今天下午面试两家,字节跳动数据研发一面和百度三面,百度那边突然不面了,hr说下个星期再看看,是直接过了还是再来一面,需要和部门商量一下,先来总结一下字节跳动的面试,对百度面... 查看详情

2023秋招——快手数据研发一二面面经(代码片段)

...趣的小伙伴可以参考下面👇:链接:2022暑期实习字节跳动数据研发面试经历-基础数仓.链接:2022百度大数据开发工程师实习面试经历.链接:2022暑期实习字节跳动数据研发面试经历-data部门链接:2021年暑假滴滴数据开发面试& 查看详情

2023秋招——快手数据研发一二面面经(代码片段)

...趣的小伙伴可以参考下面👇:链接:2022暑期实习字节跳动数据研发面试经历-基础数仓.链接:2022百度大数据开发工程师实习面试经历.链接:2022暑期实习字节跳动数据研发面试经历-data部门链接:2021年暑假滴滴数据开发面试& 查看详情

字节跳动面试——c++研发工程师

目录一面二面三面一面首先做了自我介绍,然后简单回答了面试官对于项目中的一些疑问,没有太多的深入。一面面试官比较和蔼,问的问题比较专业,比较基础,简单做了一下回忆:virtual函数能不能用在构造函数中,为什么... 查看详情

《面经分享》2021字节跳动秋招提前批面经(含详细答案!!!)(代码片段)

文章目录1.一面1.1自我介绍1.2项目经历1.3算法题1.4进程和线程的区别?1.5你了解哪些锁?1.6死锁的四个必要条件?1.7volatie与sychronized的对比?1.8volatie的应用场景?1.9虚拟内存了解吗?与物理内存的区别࿱... 查看详情

贝壳找房测试开发一面凉经--北京现场面(附面试答案)(代码片段)

📢我是二黑,一个快要秃头的测试人📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📢最困难的时候,也就是我们离成功不远的时候!今天分享一份贝壳测开一面的面试题+答案。希望对... 查看详情

2022秋招蚂蚁金服数据研发一面(代码片段)

...;:链接:2022年秋招快手数据开发一、二面链接:2022暑期实习字节跳动数据研发面试经历-基础数仓.链接:2022百度大数据开发工程师实习面试经 查看详情

2022秋招蚂蚁金服数据研发一面(代码片段)

...;:链接:2022年秋招快手数据开发一、二面链接:2022暑期实习字节跳动数据研发面试经历-基础数仓.链接:2022百度大数据开发工程师实习面试经 查看详情

字节跳动2021全年收入增速大降;有赞被曝大裁员:首先被裁的就是产品和技术研发;美国被曝以国家安全为由审查阿里云|开发者头条

我爱程序员!欢迎来撩!我的微信号:toutiaoio007 ,欢迎加我,拉你入群!有赞被曝大裁员:首先被裁的就是产品和技术研发新浪科技独家获悉,有赞本月启动了第一轮裁员。首先被裁的就是产品和技术研发。此外,新浪科技... 查看详情

大数据面经字节跳动

人家的面经作者:杨超越救救孩子啊链接:https://www.nowcoder.com/discuss/170799来源:牛客网早上九点的面试,投的南京的岗位一面:一面面试官人很nice,遇到不会的也会安慰我说没关系,上来先自我介绍&#x... 查看详情

大数据面经字节跳动

人家的面经作者:杨超越救救孩子啊链接:https://www.nowcoder.com/discuss/170799来源:牛客网早上九点的面试,投的南京的岗位一面:一面面试官人很nice,遇到不会的也会安慰我说没关系,上来先自我介绍&#x... 查看详情

golang开发面经字节跳动(三轮技术面)(代码片段)

文章目录写在前面笔试一面epoll、select、poll区别epoll的水平触发和边缘触发的区别TCP的流量控制为什么有了流量控制还要有拥塞控制?TCP不是可靠传输吗?为什么会丢包呢?那你介绍一下拥塞控制的算法?进程、线程的... 查看详情