2020 Golang字节面试经验分享

栏目: IT技术 · 发布时间: 4年前

内容简介:evernotecid://F7D66F83-C908-41AB-8BA1-212655E5AB4A/appyinxiangcom/16139346/ENResource/p82592020年4月份字节跳动后端面试经验将整数转换二进制

evernotecid://F7D66F83-C908-41AB-8BA1-212655E5AB4A/appyinxiangcom/16139346/ENResource/p8259 2020 Golang字节面试经验分享

2020年4月份字节跳动后端面试经验

第一面

  • 远程使用牛客网进行面试
  • 面试官首先介绍说会有几轮面试

算法题 1.1

将整数转换二进制

算法题 1.2 买卖股票的最大利润

给定一个数组代表股票每天的价格,请问买卖多次的情况下,最大化利润是多少?

日期不重叠的情况下,可以买卖多次?

输入: {100, 80, 120, 130, 70, 60, 100, 125}

可以买卖多次: 115(80买进,130卖出;60 买进,125卖出)

提示:不用输出买卖的序列,只需要得到最大利润

  • 时间复杂度是多少
  • 空间复杂度是多少

判断题

2.1 这段代码有什么问题,如果解决

total := 0
for i := 1; i <= 10; i++ {
    sum += i
    go func() {
        total += i
    }()
}
fmt.Printf("total:%d sum %d", total, sum)

这段代码在协程里面执行,会造成数据不统一

  • 怎么样加锁?代码实现一下

代码如下:

var lo sync.Mutex
func main() {
    total := 0
    for i := 1; i <= 10; i++ {
        nums += i
        lo.Lock()
        go func() {
            total += i
            lo.Unlock()
        }()
    }
    fmt.Printf("total:%d", total)
}
  • 还有其他问题吗

3 其他考核

3.1HTTP状态码

400 500状态码

HTTP报文格式

不清楚···

3.2HTTP请求方式

GET获取 POST创建 PUT修改 DELETE删除

  • get post有什么区别

个人主要说了get相对没有post安全,所有的参数都放在URL上面,post会把参数包装成一个请求体

  • 抓包post和get有什么区别

url中会附带GET请求的一些参数,抓包都能看见,都是明文传输,而POST的在url中则看不到

更好的答案: https://www.zhihu.com/questio...

4 数据库

4.1 mysql 事务

事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务

  • 隔离级别有哪几种

~

4.2 MySQL数据库索引是如何实现的?

使用的B+树实现的

  • 为什么不用其他的数据结构?

因为如果数据量特别大的时候,大数据量查找会影响性能,B+树恰好解决了这个问题

4.3这段数据库应该怎么加索引速度最快

select * from table_name where c> 10 and a = 10 and b = 10;

首先我们应该优化只查询的值,可以把*改为需要查询的key

5 项目相关

项目中的爬虫你用到了什么框架

  • 框架有什么用
  • 高并发怎么做的,有微服务吗
  • 如果要做分布式的,怎么实现

用kafka实现,抓取数据统一使用kafka进行消费

  • 存入哪些信息

存入列表

  • 你们没有做查找功能吗

没有,如果有这个需求可以存储到ES,使用es进行查找

6 你还有什么要问的

大概什么时候有结果

  • 五个工作日内答复

2020 Golang字节面试经验分享

欢迎关注我们的微信公众号,每天学习 Go 知识

2020 Golang字节面试经验分享

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java语言程序设计

Java语言程序设计

(美) Y. Daniel Liang / 李娜 / 机械工业出版社 / 2011-6 / 75.00元

本书是Java语言的经典教材,多年来畅销不衰。本书全面整合了Java 6的特性,采用“基础优先,问题驱动”的教学方式,循序渐进地介绍了程序设计基础、解决问题的方法、面向对象程序设计、图形用户界面设计、异常处理、I/O和递归等内容。此外,本书还全面且深入地覆盖了一些高级主题,包括算法和数据结构、多线程、网络、国际化、高级GUI等内容。 本书中文版由《Java语言程序设计:基础篇》和《Java语......一起来看看 《Java语言程序设计》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器