字节跳动广告端实习生面经

1. 自我介绍。
2. 介绍项目是怎么设计的,如何实现。
3. 微信扫码登录有了解吗?如何实现。
4. 如何上锁?java方面sychronized和reentrylock,数据库for update加互斥锁。
5. 数据库事务类型?
6. Mysql支持事务吗?我说看存储引擎,innodb支持,myisam不支持。
7. innodb索引存储结构?B+树
8. B+树和B树区别?
9.有联合索引a_b_c,查询条件where b=1 and a=1,走不走索引?我说最左匹配原则,可以使用索引。
10. redis几种数据结构?
11. zset的底层?字典和跳表。
12. zset添加元素的时间复杂度,为什么?我说logn,n是节点的个数(感觉好像不太对)。
13. 计算机网络结构介绍一下?tcp/ip协议的分层概念。
14. ip协议是干嘛的?我说找主机用的(我也不知道。。。。)。
15. 挥手为什么要比握手多一次?我说握手的时候服务器是准备好的,没有必要多发一次tcp消息,因为握手挥手阶段基本没有数据传输,加大了信道负载。
16. get和post的区别?get和post都是http1.0版本的方法,get用于查询,post用于修改,get传输数据小于post。
17.springboot是干吗的?springboot可以简化spring的配置,避免写大量的xml。
18. spring你觉得解决了什么问题?我说用来管理对象,避免自己手动管理。
19. hashtable和hashmap有什么区别?前者继承dictionary,后者继承abstractmap,巴拉巴拉。
20 最关键的区别是什么?线程安全。
21 hashtable和concurrentmap的区别。前者锁力度大,锁整个对象,后者只锁头结点。
22 只锁头结点?1.7之前锁segment,1.8之后锁头结点。
23 hashmap的实现? 数组+链表。

陆续记起来的一些问题:
1. 分布式锁了解吗?我说了一下redis里面通过setnx,比如说10台机器,获取一半机器的锁就认为获得锁了,但是可能存在一些问题,比如每个机器时间是不同步(这里主要涉及锁的释放问题,比如客户端宕机了,自己说了一堆感觉越说越不对,不过面试官也没说什么)
2. session和cookie的区别?我说http是无状态的,但是一些需求比如购物车需要保存数据,巴拉巴拉的(面试官说这跟问题没有关系),后面我就说服务器保存session,客户端的cookie中保存sessionid,服务器根据sessionid获取用户信息。
算法题:
有n(n<=10^8)个整数的无序数组 [1, 8, 6, 5, 3, 2, 9, 7],找出每个元素右边最近大于当前元素的数, 不存在则输出-1,要求时间复杂度O(N)。
输入:
[1, 8, 6, 5, 3, 2, 9, 7]
输出:
[8, 9, 9, 9, 9, 9, -1, -1]

第一时间以为是找右边大于当前元素数量,心想怎么是个hard题。后来发现不是。
又以为是循环数组,后来发现又不是。
最后说用stack来解决,面试官就说你写一下吧,10分钟。

写完之后还有一些问题,面试官就说你自己解决一下,后面终于搞定了。

希望能通过
#字节跳动##实习##Java工程师##面经#
全部评论
#include <bits> using namespace std; int main() { int n; cin >> n; vector<int> vec(n); vector<int> ans(n, -1); for (int i = 0; i < n; i++) cin >> vec[i]; stack<int> s; s.push(0); for (int i = 1; i < n; i++) { while (!s.empty() && vec[s.top()] < vec[i]) { ans[s.top()] = vec[i]; s.pop(); } s.push(i); } for (int i = 0; i < n; i++) cout << ans[i] << " "; return 0; }</int></int></int></bits>
点赞 回复 分享
发布于 06-07 10:49 北京
     public static int[] method(int[] arr) {         int[] res = new int[arr.length];         Arrays.fill(res, -1);         Stack<Integer> stack = new Stack<>();         for (int i = 0; i < res.length; i++) {             //递减栈             while (!stack.isEmpty() && arr[stack.peek()] < arr[i]) {;                 res[stack.pop()]=arr[i];             }             stack.push(i);         }         return res;     }
点赞 回复 分享
发布于 2020-03-25 11:40
请问什么时候给你通知二面了?
点赞 回复 分享
发布于 2020-03-22 19:19
楼主,请问你分享的是包括几次面试呢?收到答复了吗?
点赞 回复 分享
发布于 2020-03-21 16:20
用栈怎么实现
点赞 回复 分享
发布于 2020-03-19 16:08
楼主这是大部分都答出来了吗,这也没过吗。。
点赞 回复 分享
发布于 2020-03-16 11:11
老哥有后续通知吗?一般要面几面呢?
点赞 回复 分享
发布于 2020-03-03 17:33
楼主是是这个岗位吗?
点赞 回复 分享
发布于 2020-03-03 01:30
楼主什么时候投的,日常实习吗
点赞 回复 分享
发布于 2020-03-01 23:11
tql, 面的后端吗?
点赞 回复 分享
发布于 2020-03-01 23:06

相关推荐

头像
10-13 18:10
已编辑
东南大学 C++
。收拾收拾心情下一家吧————————————————10.12更新上面不知道怎么的,每次在手机上编辑都会只有最后一行才会显示。原本不想写凉经的,太伤感情了,但过了一天想了想,凉经的拿起来好好整理,就像象棋一样,你进步最快的时候不是你赢棋的时候,而是在输棋的时候。那废话不多说,就做个复盘吧。一面:1,经典自我介绍2,项目盘问,没啥好说的,感觉问的不是很多3,八股问的比较奇怪,他会深挖性地问一些,比如,我知道MMU,那你知不知道QMMU(记得是这个,总之就是MMU前面加一个字母)4,知不知道slab内存分配器-&gt;这个我清楚5,知不知道排序算法,排序算法一般怎么用6,写一道力扣的,最长回文子串反问:1,工作内容2,工作强度3,关于友商的问题-&gt;后面这个问题问HR去了,和中兴有关,数通这个行业和友商相关的不要提,这个行业和别的行业不同,别的行业干同一行的都是竞争关系,数通这个行业的不同企业的关系比较微妙。特别细节的问题我确实不知道,但一面没挂我。接下来是我被挂的二面,先说说我挂在哪里,技术性问题我应该没啥问题,主要是一些解决问题思路上的回答,一方面是这方面我准备的不多,另一方面是这个面试写的是“专业面试二面”,但是感觉问的问题都是一些主管面/综合面才会问的问题,就是不问技术问方法论。我以前形成的思维定式就是专业面会就是会,不会就直说不会,但事实上如果问到方法论性质的问题的话得扯一下皮,不能按照上面这个模式。刚到位置上就看到面试官叹了一口气,有一些不详的预感。我是下午1点45左右面的。1,经典自我介绍2,你是怎么完成这个项目的,分成几个步骤。我大致说了一下。你有没有觉得你的步骤里面缺了一些什么,(这里已经在引导我往他想的那个方向走了),比如你一个人的能力永远是不够的,,,我们平时会有一些组内的会议来沟通我们的所思所想。。。。3,你在项目中遇到的最困难的地方在什么方面4,说一下你知道的TCP/IP协议网络模型中的网络层有关的协议......5,接着4问,你觉得现在的socket有什么样的缺点,有什么样的优化方向?6,中间手撕了一道很简单的快慢指针的问题。大概是在链表的倒数第N个位置插入一个节点。————————————————————————————————————10.13晚更新补充一下一面说的一些奇怪的概念:1,提到了RPC2,提到了fu(第四声)拷贝,我当时说我只知道零拷贝,知道mmap,然后他说mmap是其中的一种方式,然后他问我知不知道DPDK,我说不知道,他说这个是一个高性能的拷贝方式3,MMU这个前面加了一个什么字母我这里没记,别问我了4,后面还提到了LTU,VFIO,孩子真的不会。
走呀走:华子二面可能会有场景题的,是有些开放性的问题了
点赞 评论 收藏
分享
评论
6
89
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务