网易雷火_服务器开发精英实习_一二面(20250212)

一面(20250210)

自我介绍

TCP四次挥手中的FIN_WAIT_1出现在什么时刻?TCP四次挥手的过程是怎样的?

看代码回答程序会输出什么?右值引用?移动拷贝构造函数?std::move的作用?std::move的使用场景?

class B {
public:
    B() {std::cout << "1" << std::endl;}
    B(const B& other) {std::cout << "2" << std::endl;}
    B& operator=(const B& other) {
        std::cout << "3" << std::endl;
        return *this;
    }
    ~B() {std::cout << "4" << std::endl;}
};

class A : public B {
public:
    A() {std::cout << "a" << std::endl;}
    A(const A& other) : B(other) {std::cout << "b" << std::endl;}
    A& operator=(const A& other) {
        if (this != &other) {
            B::operator=(other);
            std::cout << "c" << std::endl;
        }
        return *this;
    }
    A(A&& other) : B(std::move(other)) {std::cout << "d" << std::endl;}
    ~A() {std::cout << "f" << std::endl;}
};

int main() {
    A a1;
    A a2 = a1;
    A a3;
    a3 = a1;
    A a4 = std::move(a1);
    return 0;
}

static变量的生命周期,下面的程序会输出什么?

void f(int a) {
	static int i = 0;
	std::cout << ++i << std::endl;
}

int main() {
	f(1);
	f(1.0);
	f(1);
}

TCP和UDP的应用场景分别是什么?

int a[1000000000000000]这样声明会报错吗?

在一台32位的Linux机器上,用malloc去申请6个G的内存能成功吗?4个G呢?3个G呢?

TCP报文头中的序号有可能溢出吗?如果溢出了怎么办?(防回绕序列号算法,给TCP报文加上一个时间戳)

如果让你使用UDP去实现可靠传输,你要怎么设计?怎么保证消息的有序性?KCP听说过吗?

Linux中grep命令一般用来干嘛?gdb用过吗?平时是怎么调试的?

有遇到过内存泄漏吗,当时是怎么排查的?如果让你设计一个用来检测内存泄漏的工具,要怎么设计?静态检测动态检测都可以说一下?

假设一个结构体需要在网络中传输,需要考虑哪些问题?

如果让你设计一个序列化/反序列化算法,你会怎么设计?

如果我要传输的数据量很小(小于报文头部),比如就2个byte,你这种方案在这种场景下是不是很浪费网络资源?要怎么优化?(Nagle算法

如果游戏中的一个场景下的玩家数量很多,每次要同步的数据量很多,你要怎么优化?AOI?还有呢?

如果游戏内有一个群聊,比如说有10条信息,玩家只看了1条信息就下线了,你要怎么设计一个机制去推送这些群聊信息?

如果消息数量很大呢?如果玩家数量很多呢(比如说群里有10w个人)?

如果一个玩家重复上下线而不读消息,你的方案会有什么问题?怎么优化?

你了解的市面上这些游戏的同步机制是怎么做的?有什么优化的方案?

总结:转go之后c++很多知识都忘记了,所以答的很一般。另外有很多面向高并发,大数据量场景优化题,还是缺少思考和灵活变通!一面完第三天hr通知二面!

二面(20250213)

redis集群有哪些部署方式?

redis的数据类型有哪些?zset的底层是怎么实现的?

zset如果要查找第k大的元素,具体到跳表的过程是怎样的?复杂度是多少?

zset如果要查找分数为x的元素是第几名?具体到跳表是怎么实现的?复杂度是多少?

Lua的语法还记得吗?

使用Lua脚本更新redis集群中的多个key,且如果这些key被hash在不同的节点上,Lua脚本还能保证原子性吗?

goroutine是怎么底层是实现的?协程的调度模型了解吗?

goroutine是在用户态上实现的,假设有某些协程运行时间很久,它是通过什么机制使得其他协程不会饥饿的?

令牌桶算法和漏桶算法有什么区别?

手撕:用你熟悉的语言实现一个令牌桶算法!

总结:redis的部署模式没怎么了解过,另外跳表细节还是不够熟,一面都在问C++,二面突然又问Go,GMP和GC这些还是不熟;手撕写出来了,但是前面回答的太太太差了!泡了大概2周后挂!

全部评论

相关推荐

#牛客AI配图神器#和波主熟的朋友们都知道,波主真的很挺贪玩的哈哈哈哈很少看八股,也不爱看。。可能你们现在拷打波主八股会支支吾吾...回想我的面试,似乎都是围绕着我会的地方问,大概是最近和宿佬还有学长学到的引导面试罢...注意,此文只适合对面试技巧提升,并不是说可以不学八股啊喂!!回忆本人的面试经验,面试官刚拿到你的简历,对你是一无所知的,那其实他会根据印象深的东西对你进行提问,所以我们在简历方面可以做一个引导。面试开头是很正常的自我介绍,很多人会觉得随便说一下就好,但其实我们可以在这里也做一个引导的,而且多说一点也可以给面试官时间看你的简历,所以这里也可以准备一下。然后就是具体提问了,对实习...
nokotan:佬tql,还很谦虚。个人决定佬说得很对,要有意把面试官提问引导到简历项目上,但前提是自己对项目一定要熟悉。项目的需求背景、难点痛点、已有方案的不足、解决方案的实现都得有认知,虽然我们实习大多数是打杂,但是不影响我们偷文档学业务。只要能把上面几个点做到自圆其说,那基本就有6、7成把握了
点赞 评论 收藏
分享
评论
2
14
分享

创作者周榜

更多
牛客网
牛客企业服务