字节跳动

1.数据库索引结构
2.B树和B+树的区别
3.进程和线程区别
4.线程状态
5.进程间通信方式
6.未命名管道和命名管道区别
7.讲讲共享内存
8.讲讲Hashmap
9.Hashmap线程安全吗?举例说明,特别是在扩容时会出现什么情况
10.单例模式(写了一个双重锁的)
11.TCP和UDP的区别
12.TCP可以提供哪些可靠传输
13.拥塞控制机制和流量控制
14.synchronized是基于什么实现的
15.算法题(紧张,没思路,主要是刷题太少)
给一个不重复数组,列举出它的全排列
(面试官说用DFS递归,时间到了,结束吧……居然都没有提问环节???是凉了吧)😭

211本硕 实验室用C/C++不用java 自学java半年左右 面试时长80分钟 部门是手游服务端
1.自我介绍,讲项目
2.讲一个c++项目(滔滔不绝5分钟被打断,评价说对项目挺懂的)
3.讲java项目
4.netty(啊啊啊我真的没学到netty,只能老实说不会了,以后一定要学netty了)
5.讲一下数组和链表和区别(这个简单)
6.讲一下hashmap(简单)
7.讲一下线程安全的hashmap(一开始一直说hashtable,后来都到他跳过这个问题的时候突然我灵光乍现想起来concurrenthashmap,所以也算是对了)
8.讲一下hashmap的数据结构(数组链表红黑树逐级扩展)
9.hashmap查找的时间复杂度(O(1))
10.hashmap 的转换过程(初始值16 然后翻倍,然后链表长度超过8转红黑树)
11.手撕代码:撕一个线程安全的单例懒汉模式(撕之……)
12.七层网络协议和四层网络协议的区别
13.TCPIP协议栈在哪一层(tcp传输,ip网络)
14.TCP UDP的区别(这个随便说,不过要多说一点)
15.讲讲restful(面向资源,一个资源一个url,http层,四种操作)
16.http和https的区别(一个是加密的,一个是明文)
17.htttps 的加密方式(我说了一个ssl,因为没用过,所以也没法细说)
18.redis有哪五种数据结构
19.讲讲redis sorted set (有序的set)
20.如果要实现一个redis的排行榜,可以用到哪种数据结构(我说了sorted set)
21.用sorted-set实现一个排行榜需要注意哪些问题(我觉得是并列问题的解决,面试官说对的)
22.简述一下什么是死锁,死锁出现的原因(这个简单)
哈哈哈接下来我的骚操作简直堪称人生至暗时刻!!!!手撕代码!
实现一个栈时间复杂度O(1) 可以push(),pop(),getmin()。我看了这个题之后他让我先说思路,我说用辅助栈,min就可以循环更新,然后!!我装逼说这个题我以前刷过😭
然后就傻了,面试官说以前刷过啊,好的加难度,用链表实现一个栈。然后我就傻了,因为我以前还没写过java的链表,都是用c++写的,然后就硬着头皮写,写了20分钟基本也写得差不多但是很多代码地方我都用了c++的语法😂 面试官说行吧,只要把思路写通就行,最后写到getmin 的时候他说可以结束了,所以也就没撕完 。我感觉这个题真的堪称装逼失败的典型,顺风浪浪死自己啊!!!
总结:字节的题目很重视算法和数据结构,然后就是比较重基础,jvm没问,高并发基本也没问,所以前面的题答得还可以。

7. 一道编程题,输入一串由ABCD四个字随机组成的字符串和一个整数k,返回字符串种前k个字的顺序重复了几次。

三道题 二叉树/快排/作用域
--1.二叉树中根节点到叶子节点其中一条路径和为22,就返回true。 二叉树没有好好准备,这道题直接和面试官说了大概思路,没做出来,跳过了。
这是我现在的思路

一面(60 min):
自我介绍。
介绍第一个项目,面试官说他也不懂,不问了。
介绍第四个项目;reactor 和 proactor 的区别,知道哪些项目是基于 proactor 的吗; epoll 相关;给我看看代码。
内存分配原理。
三次握手和四次挥手。
僵尸进程,孤儿进程。
fork 原理。
线程同步的方法;进程通信七种方法。
Python 生成器和迭代器;Python 代码是怎么执行的。
C++11 新特性。
mysql,B+ 树。
算法题:删除注释。
二面(50 min):
二面面试官人很nice,好多地方我没说好的都会补充半天,最后还给了我一些建议,说不能只顾广度,到最后啥都不精。
自我介绍。
来我们先写几个代码吧(言外之意:你代码写不出来,我们没得聊):
找只出现一次的数字,其他都出现两次;
忘了是啥了,反正是一个二维dp,但是可以优化到一维,我只出了二维。
孤儿进程;僵尸进程,怎么预防,怎么解决。
进程间通信方式。
阻塞 IO 和非阻塞 IO;异步 IO。
一些开放性题目。
职业规划。
三面(30 min):
自我介绍,前两面聊的怎么样。
实验室做啥的;跟着做过啥项目;上过啥课,编译原理数据库学过吗。
网络说一下,七层模型,四层;应用层找一个熟悉的详细说一下。
操作系统说一下,把你了解的说来听听;虚拟内存,页表,TLB;进程调度,CFS。
了解哪些开源项目。
你觉得软件工程和计算机科学有啥区别。
职业规划,毕业要直接工作吗(那不然嘞)。
为什么不做算法(我觉得做算法得博士了,我太菜了)。
为什么不读个博士(不了不了)。
为什么转专业,我觉得你本科这专业可以直接做算法(大佬饶了我吧)。
城市意向。
介绍部门。
交叉面(1 h):
自我介绍。
介绍几个项目,都是自己说了一下,没详细问。
毕业时间,实习情况,实习时间之类的。
算法题:给一个数组,四个数和加减乘除组成表达式,求所有值为给定值的表达式。
进程和线程的区别,应用场景。
长连接和短链接区别,应用场景。
三四个场景题。
意向,兴趣。

[一二面问了很多计算机基础题,一共考了4道算法。三面一直问简历,问的很深。
算法:

  1. 二分搜索变种
  2. 正则表达式
  3. DFS回溯在一个二维数组中计算有几个岛屿
  4. 将二叉树编程双向链表
    大概问的基础知识:
    TCP相关知识,问了很多包括各个机制的原理
    HTTP相关知识
    C++一些知识
    进程通信
    数据库索引(B+树)
    剩下的记不清了,2周前的事情了......
    面试问的计算机基础题,都在我准备的面经里面(70+页 + 一些博客链接)我放在我的GitHub里了,需要的人自己去拿。希望可以给我一颗小🌟,谢谢。
    https://github.com/TG-yang/Interviews
    ](https://www.nowcoder.com/discuss/381765?type=2&order=0&pos=25&page=1)

3-13 视频一面(一个小时左右)
常规自我介绍
期间问了项目的问题:缓存一致性问题、MySQL乐观锁;
问之前实习的一些问题,在实习的时候学到了什么。
Redis 的过期策略、缓存雪崩、惰性删除
MySQL索引、b+树,为什么不用哈希map来存储?
最左前缀原则
(A,B,C)的联合索引,去查 B = 0 和 C = 0,还会使用索引吗?
编程题
SQL,求第二大的薪水
1
2
3
4
5
6
7
8
9
10
11
12
13
Employee
+----+--------+
| Id | Salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
+---------------------+
| SecondHighestSalary |
+---------------------+
| 200 |
给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素。
1
2
3
4
5
6
7
8
9
10
输入 : 1->2->3->3->4->4->5->null
输出 : 1->2->5->null
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
3-18 视频二面(一个小时左右)
面试官比较严肃。
自我介绍
怼项目(质疑我的缓存一致性操作,然后我口嗨用消息队列解决并发问题)
手写单例模式-懒汉模式
JAVA的锁、乐观锁悲观锁(视频卡出翔,面试官基本听不到我说啥,然后说我们来先做题吧,我??)
编程题1:最大岛问题(我想了个分治,思路不对,直接爆炸,面试官还是不错的,给我换了道题)
编程题2:股票利润1(还要求写测试用例,要求跑通)
编程题3:股票利润2(可以买卖多次)(这两题都秒了,面前)
TCP的四次挥手
HTTPS
分代回收在整个GC中处于什么位置?
3-18 视频三面(一个小时左右)
二面完也没告诉我过了,还在整理面经,没关牛客,突然就收到面试邀请。
自我介绍、怼项目、Redis缓存
LRU在操作系统怎么实现?
HashMap扩容底层实现
Git 底层实现;如何解决冲突?
设计题:关注系统怎么设计?
可以关注、取关别人
可以查看关注、粉丝列表
可以查看关注、粉丝数
快速判断两个人的关系
如果有大V(粉丝数很多),你的系统有没有问题?或者说如果觉得没问题,为什么没问题?(存储上,使用上)
编程题1:股票利润1
编程题2:股票利润3(可以买卖两次)(查了下,就是股票利润3,hard)
(写了半天,头秃,之前都没做过,想了几个办法都感觉不行,不断地跟面试官交流,好在最后在面试官的引导下写出来了)
1
2
3
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。
注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
最近有看什么书?接下来什么打算?

全部评论

相关推荐

头像
01-12 14:44
已编辑
百度_高级研发工程师
今天看到了某平台攻击牛友的帖子,段段今天打算为牛友们说句话,我们的努力到底有没有意义。 (原文复述:感觉牛客就是当年那群做题区毕业了开始找工作还收不住那股味,颇有一种从年级第一掉到年纪第二后抱怨考不上大学的区味)  粗鄙,无礼,傲慢,攻击,在这里我没有看到任何有用的分析,我只看到了屁股决定脑袋的攻击,我只看到了嫉妒和眼红。一、去医院不看病你去逛街吗 去医院你不去看病你去逛街吗?去加油站不加油你去抽烟吗?去部队你不训练战斗技能你去养老吗?来牛客你不努力求职你来干什么来了。 牛客本身就是个求职平台,大家分享有用的知识,分享面经,分享offer,分享求职经验的,来牛客不就干这个来了吗?有什么问题吗?...
给个好点的工作吧啊啊...:不知道我看的是不是和博主同样的帖子,我记得原帖是表达的是有些匿名老是发几十万的offer侮辱价,然后就有牛友觉得凡尔赛了导致后面的评论有些偏激。我觉得这个最近闫学晶那个事情有点类似了,她说他儿子一年只能赚七八十万家庭生活都难以为继,不说普通家庭,多少大厂的程序员都赚不到这个数字,大部分家庭看到这种发言肯定会难受的一p,生活的担子又这么重,人都是需要发泄情绪的,互联网就是个极佳的载体,所以很多人直接就喷她了,人在情绪发泄的时候是不思考的,否则就不叫发泄了。然后还有一个点,段哥假定了这些喷的人全都是“躺平的”,这点可能有失偏颇,很多人一直在努力,但是始终缺乏天时地利人和的某一个条件,这点相信段哥找工作的过程中深有体会。绝大部分人都以结果的失败去否认了努力的全过程,可能只是别人努力的方向错了。就像一次面试,可能你准备了很久,结果面试官就是比较奇葩,一直问没有学习到的领域或知识点,然后有人凭一个挂掉的结果就直接给你扣了一个“躺平”的帽子,觉得挂掉是你不够努力,您心里滋味如何?再说点近点的,我也是od,多少同事深夜无偿加班,涨过一分工资吗?多少外包的技术大牛因为学历被困在外包,连od都进不去,这些人难道不努力吗?只是限制与生活、公司制度等等之类的无奈罢了。说到努力,又想到李家琦79元眉笔事件,这么多年有没有认真工作?有没有涨工资?他嘴里说出来是那么的理所当然,打工牛马都知道“任劳任怨”,“认真工作”真能涨工资?只干活不发声就等着被摘果子吧,企业里永远都是“汇报杰出者”升的最快(当然不是所有企业),这种事情相信段哥包括我甚至大部分od都经历过。最近辞职回老家,和老爸散步每次他都会感慨街上的蔬菜小贩多不容易,他们晚上就窝在那种三轮小货车的驾驶室里,腿都伸不直,我们这里晚上零下了,只盖一条薄毛毯,始终舍不得住我们镇上几十块的酒店,因为一车蔬菜就赚几百块顶多一千而且要卖好久,这样的例子还有太多了。这种芸芸众生可能辛苦了一天之后,打开手机看到网上的凡尔赛发言,跟风喷了几句发泄情绪,我觉得这种人不应该扣上“躺平”的帽子。我觉得大部分正常人都是努力的,或者曾经努力过,但世界上有太多努力解决不了的无奈了,甚至说你都没有那个努力的机会,不过正因如此,才显得坚持不懈的努力奋斗之人的难得可贵,认清生活的真相后仍然热爱生活,敢于直面现实的淋漓。
段段STEADY觉醒与突...
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

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