就凭查漏补缺这点,面试字节跳动之前请看这份前端面试真题解析

507 阅读5分钟

前言

当你开始开始去跳槽面试的时候,明明只是一份 15K 的工作,却问你会不会多线程,懂不懂高并发,火箭造得让你猝及不防,结果就是凉凉;现如今市场,多线程、高并发编程、分布式、负载均衡、集群等可以说是现在高级后端开发求职的必备技能。今天分享一次字节跳动面试的经历,后面还有面试题解析哦。

字节跳动面试经历

字节一面

1、找一个你的项目说一下,首先你的项目介绍,承担了什么职责,做了哪些工作,难点

2、从你项目中看出,你使用的是 mysql,mysql 的 int 数据类型都有哪些?从小到大说一下,各占多少字节?

3、java 中的 int 都有哪些?字节占多少

4、问你一个关于计算机网络的,tcp 的三次握手说一下?

5、tcp 和 udp 的区别

6、你说你熟悉 linux,我给你一个案例,搜索出 log 文本中出现次数最多的 IP,并且给出次数

7、说下 java 的 gc

8、说一下 hashmap 这个数据结构

9、进行一次查找的话 haspmap 的时间复杂度是多少

10、给你一个算法你看一下,有一个无限长的整型数组,从小到大排序,非递增。那么怎么找到数组中一个 key

字节二面

1.说一说 mysql 的索引结构吧

2.看一道题吧,这个题怎么建立索引

mysql 订单表有几个属性:订单 id,用户 user_id、下单日期 date(精确到天)等,请问索引怎样建立

a. 查询某个用户的所有订单

b. 查询某一天的所有订单

c. 查询某一天某个用户的所有订单

看第二道题

10G 文件,每一行一个 uint32 数字。有一台 1G 内存的机器

  • A. 找出最大的 k 个数

  • B. 找出重复数字

第三道题

我手中有一堆扑克牌, 但是观众不知道它的顺序。

第一步, 我从牌顶拿出一张牌, 放到桌子上。

第二步, 我从牌顶再拿一张牌, 放在手上牌的底部。

第三步, 重复第一/二步的操作, 直到我手中所有的牌都放到了桌子上。

最后, 观众可以看到桌子上牌的顺序是:13\12\11\10\9\8\7\6\5\4\3\2\1 请问, 我刚开始拿在手里的牌的顺序是什么?用代码实现以下

字节三面

  1. 你觉得你目前遇到的困难有哪些?项目上的难点?

  2. 你的项目数据库多大?QPS 多少?哪些 sql 比较慢?

  3. 那你觉得以后 qps 更大的话,你该怎么设计?

4.给你一个算法题,你来看一下思路

四面(HR 面,大约 35 分钟,主要是问个人职业规划、薪资待遇,以及对字节跳动的期许等等)

小编把字节跳动的面试题综合整理了一份,里面包括了题目的解析。内容大纲有:HTML、CSS、JS、浏览器、服务端与网络、Vue、算法

HTML

  • 你是怎么理解HTML语义化
  • 你用过哪些HTML5标签
  • meta viewport 是做什么用的,怎么写?
  • H5是什么
  • label标签的作用
  • 行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
  • a标签中 如何禁用href 跳转页面 或 定位链接
  • canvas在标签上设置宽高 和在style中设置宽高有什么区别

CSS

  • 页面渲染时,dom 元素所采用的 布局模型,可通过box-sizing进行设置。根据计算宽高的
  • ie盒模型算上border、padding及自身(不算margin),标准的只算上自身窗体的大
  • 几种获得宽高的方式 :
  • 拓展各种获得宽高的方式 :
  • css reset和normalize.css有什么区别
  • 居中方法:
  • css优先确定级:
  • 如何清除浮动:

JS

  • 请你谈谈Cookie的优缺点
  • Array.prototype.slice.call(arr,2)方法的作用是:
  • 简单说一下浏览器本地存储是怎样的
  • 原型 / 构造函数 / 实例
  • 原型链:
  • 执行上下文(EC)
  • 变量对象
  • 作用域链

浏览器

  • 跨标签页通讯
  • 浏览器架构
  • 从输入 url 到展示的过程
  • 重绘与回流
  • 存储
  • Web Worker
  • V8垃圾回收机制
  • 内存泄露

服务端与网路

  • http/https 协议
  • 常见状态码
  • get / post
  • Websocket
  • TCP三次握手
  • TCP四次挥手
  • Node 的 Event Loop: 6个阶段
  • URL概述

Vue

  • vue.js的两个核心是什么?
  • vue 的双向绑定的原理是什么?
  • vue生命周期钩子函数有哪些?
  • 请问 v-if 和 v-show 有什么区别?
  • vue常用的修饰符
  • nextTick
  • 什么是vue生命周期
  • 数据响应(数据劫持)

算法

  • 五大算法
  • 基础排序算法
  • 高级排序算法
  • 递归运用(斐波那契数列): 爬楼梯问题
  • 数据树
  • 天平找次品

需要完整版字节跳动前端面试真题解析的小伙伴们,请点击这直接获取噢!

面试的几个建议

逻辑清晰:一定要逻辑清晰,不然即使你知道这个问题的答案,面试官也不会满意,如果你逻辑清晰,即使这个答案不会,面试官也会给你加分。

独特理解:现在的面试题大同小异,那么如何体现出你的优势就很重要。结合业务以及你自身的知识储备来讲。

深入思考:对每个问题一定要有深入的思考,不然就很难进入大公司了,深度上要有一个拔高才能在面试中获得好的成绩

流畅表达:面试就是一个表达的过程,一些问题心里明白不行,还要流畅的表述出来,基本上如果面试官觉得你表达的很流畅,当你讲到一半就不会再让你说下去了,证明已经通过了