字节三面...
听说你对java有排斥,为啥
介绍了一下c++开发做的比较多的领域(大致记得游戏服务端..os..基础架构研发什么的...)
三次握手四次挥手过程,为啥握手是三次,挥手是四次
c++ auto关键字实现原理(...不知道答什么,只好说了编译器根据传入类型/表达式类型推断变量类型)
说说链接器在链接过程都做了什么(答了section合并与符号地址决议...后面想起来应该还能答一些强弱符号和动态链接器的符号重定向机制的...当时没想起来...)
说说对模板元编程的理解(不知道咋答...就讲了讲类型萃取,还有stl的容器、迭代器、算法之间的组合方式以及这样组合的优势)
说说一条sql语句的执行过程(..不会sql,大三学的..至今三四年没用了)
后端开发比较关注的数据库、消息队列、缓存,你了解过哪个(数据库仅在大三了解过,消息队列听说过没用过,缓存简单用过(webserver里面简单用了redis缓存静态资源))
两道算法题..只测了测试用例,虽然做出来了但是写的不爽(可能是事后回想起来简单的问题解的磕磕绊绊吧..)
1. 两个版本号比大小,主/子版本号可能有前置0、中间用.分隔,版本号1小于版本号2时返回-1,等于时返回0,大于时返回1。如果一个版本号是另一个版本号的前缀,并且另一个版本号后跟子版本号都为0,那么认为这两个版本号相等,否则认为第二个版本号大于第一个版本号。
...写复杂了,用string::find+string::substr+stoi处理字符串分割和版本号长度不一的情况还是吃力了点,也是因为我不会用regex做split吧,害...后来想到可能单独处理一下一个版本为另一个版本的前缀这种情况也能简单很多...(处理完后俩版本就相当于一样长了...)
2. 一个二叉树,求树根到各个叶子结点路径上的k值之和,k值定义为路径上各节点值顺次连接而成的十进制数...(如1->2->4,1为根,4为叶,这条路经贡献的值为124)
基本的dfs...但是因为一些原因..可能是紧张了吧,写了十几分钟才....害,中间参数传错了都找了好久..
最后...
你还有啥想问的吗(暂时没有...)
字节后端go和java为主,c++得转,这个和你以后的生涯发展很有关系...还有什么想不起来了(我:嗯嗯...)
面试官人挺好的,为我职业发展给了很多建议。就是问的几个问题我答的都比较简单,以至于每次回答完都和面试官一起静默了一小会儿,害...应该是走远了...得把mysql基础和设计原理冲起来了...
#面试复盘##C/C++##字节跳动#