字节跳动 Rust/C++研发实习生 面经

一面: 1h
0.自我介绍
1.算法题  n个有序数组合并为1个有序数组 问思路(一开始想的暴力法,后面在提示下联想到归并排序 O(nlogn))
2.算法实现  写了大概二十多分钟  写的特别复杂  感觉还是太紧张了
3.fn Fn FnMut FnOnce 的区别
4. Send Sync ?Size分别解释
5. 了解什么智能指针?
6. 程序有哪些section,由什么组成?程序启动的过程?怎么判断数据分配在栈上还是分配在堆上?
7.虚拟地址到物理地址怎么映射的? (讲了 页 段,但是忘了讲tlb和缺页中断了)
8.32位的系统能访问4gb以上的内存吗(我答的不能  面试官说可以去查一下最新的Linux  【intel新的x86硬件PAE支持36寻址空间,但是多出来的部分是虚拟的地址空间,单个应用程序估计无法使用到超过4GB的空间(32为系统的最大int是4GB),只能是多个进程合起来能够使用到4G以外的内存】PAE!!!)
9. 一个名为order的数据库,有date 和name字段,要查 date 、name以及name=?&&?<date<? 怎么建索引?  (我讲了联合索引,其实自己不懂联合索引,所以后面追问的答不出了。。。好像问了最左匹配)
10.tcp慢启动过程
11.重传机制(超时重传 快重传)
12.tcp拥塞控制算法(讲了传统的 面试官说  还有呢? 我:不知道了  面试官:拥塞控制有很多种,例如最新的quick    [面试完我去查了下quick    仍然用的是Cubic拥塞控制算法呀。。。])
13.浏览器访问url的过程(从osi七层模型往下讲)
14.协程和线程的区别?golang协程模型?什么时候用协程 什么时候用线程?rust为什么没有协程?(关于rust为什么没有协程 我感觉我答错了  其实rust的异步库实现的就是类似协程的东西。。但是太紧张 忘记了)【协程本质就是task,而且在用户态。应该讲一下用户态和内核态的关系的。】
15.还有什么要问的  (问了怎么学习rust 面试官:多做项目)
没录音 好像漏了些题
感觉要凉  别凉!!
#实习##面经##字节跳动##C++工程师#
全部评论
第一次见有Rust的,感觉像看到宝贝一样😂
6 回复
分享
发布于 2020-10-14 00:08
2面 70min 笔试题 接雨水 (没跑出来) 1.进程 线程 协程 golang的协程模型 2.rust的常用Trait 3.一串rust语法问含义 4.锁有几种 5.锁中毒(我没听说过这个概念...) 问实习时间  面试结束 诶 为什么有人刷leetcode那么厉害????? 做笔试题从来就没有跑出来过结果,永远都有bug,永远都找不出bug在哪。一定要肌肉记忆吗???
点赞 回复
分享
发布于 2020-10-19 15:53
小红书
校招火热招聘中
官网直投

相关推荐

PCG腾讯视频客户端一面(3.28)介绍项目c++面向对象特点#define和const区别类和结构体的区别设计模式深拷贝和浅拷贝虚函数和纯虚函数指针和引用的区别STL的map有哪些,实现原理是什么堆排序?时间复杂度c++的类型转换有哪些?操作系统进程与线程区别进程间通信和线程间通信死锁,死锁条件,解决方法线程池计网传输层有哪些协议介绍一下TCP拥塞控制https和http算法题给你一个整数数组&nbsp;nums&nbsp;和一个整数&nbsp;k&nbsp;,请你返回其中出现频率前&nbsp;k&nbsp;高的元素。你可以按&nbsp;任意顺序&nbsp;返回答案。3.29约二面二面(4.1)项目介绍rust重写的网络协议栈有没有去测试一下性能以及安全性测试(回答还没完全完成,这个还没开始做)那对这个测试有什么想法,思路吗。有没有考虑过兼容性测试如何进行重写呢,直接翻译C语言版本的吗选择rust,除了安全性还有没有其他方面的考虑?rust比c/c++的优势项目中遇到的印象比较深的问题用rust获得安全的同时可能会影响效率,考虑效率优先还是安全优先?c++介绍c++中的几种智能指针unique_ptr所有权被转移后再使用他会怎样?那rust中的变量的所有权被转移了再使用会怎样?虚函数和纯虚函数虚函数以及多态性底层是怎么实现的?静态绑定、动态绑定new和malloc区别操作系统进程通信哪些方式?项目中用过哪些进程通信方式呢?自旋锁和互斥锁区别计网TCP协议如何保证可靠传输为什么要三次握手,两次不行吗如何解决TCP包的乱序问题如何保证发送方发送速度能让接收方来得及处理代码题1.线程安全的单例模式2.给一个数组和一个整数s,找出数组中和大于等于s的连续字串的最小长度,如果没有返回0三面(4.2)介绍项目项目中遇到哪些问题、如何解决遇到新技术如何学习查询资料通常去哪里查是否会关注一些新的前沿技术项目如何分工做项目过程中是否会做一些总结,写文档、博客啥的对安卓客户端有什么看法(安卓客户端部门的面试)介绍一下rust,这个项目为什么选择rustc++和rust有什么区别思考题:1001个球,两个人轮流拿,每个人只能拿1、2或4个,拿到最后一个球的人输。如果你先拿,怎么拿才能赢。
点赞 评论 收藏
转发
7 42 评论
分享
牛客网
牛客企业服务