网易互娱客户端&服务端开发2面凉经

网易游戏二面面经

  1. 自我介绍,并挑一个做得比较好或有成就感的项目,介绍你负责的工作、遇到的问题及解决方法。

  2. 项目相关

  3. epoll的触发模式有了解过吗?

  4. 协程了解吗?

  5. 如果让你自己实现一套协程方案,需要关注什么问题?核心是什么?上下文怎么维护?

    关注点 说明
    1. 上下文保存与恢复 需要保存寄存器(栈指针、程序计数器、通用寄存器)、信号掩码、浮点状态等,以便恢复执行。
    2. 栈内存管理 每个协程需要有独立的栈空间。如何分配?大小固定还是动态增长?如何避免栈溢出或内存浪费?
    3. 调度器设计 协程何时主动让出(yield)?调度器如何选择下一个运行的协程(FIFO、优先级、轮询)?是否支持跨线程调度?
    4. 切换时机 显式 yield 还是自动 yield(如等待 I/O)?是否提供钩子来拦截系统调用?
    5. 并发安全 多个线程同时调度协程时,如何保护共享数据?协程是否要绑定到固定线程?
    6. 栈溢出检测 如何检测栈溢出?可以用 guard page 或在栈底填充魔数。
    7. 异常处理 协程内抛出的异常如何传播给调用者?C++ 中需要注意异常与协程栈的兼容性。
  6. 你实际项目中用协程多吗?

  7. UDP和TCP有什么区别?

  8. 为什么TFTP要用UDP而不是TCP?

  9. UDP丢包通常是什么原因导致的?还有没有其他原因?

    网络波动

    接收方缓冲区不足

  10. UDP有没有粘包的问题?为什么没有?

  11. TCP有没有粘包的问题?怎么解决?

  12. 报表查询慢的问题具体是什么业务?你怎么解决的?

  13. 数据量大概到什么级别会出现慢查询?

  14. 写一个C++单例?

    单例设计模式是一种确保一个类在运行期间只有一个实例,提供一个全局访问点来访问该实例的创建型模式。核心特点如下:

    1. 私有化构造方法,防止外部通过new关键字直接实例化对象。
    2. 类内部自行创建一个私有的静态变量,保存该类的唯一实例。
    3. 提供公共静态方法,给使用者提供调用方法,返回唯一实例。

    单例模式适用于资源独占、全局统一管理的场景,可以避免一个全局使用的类被频繁创建与销毁,耗费系统资源。

    class Singleton {
    private:
        Singleton() = default;
        ~Singleton() = default;
        Singleton(const Singleton&) = delete;
        Singleton& operator=(const Singleton&) = delete;
    
    public:
        static Singleton& getInstance() {
            static Singleton instance;  // C++11 保证线程安全
            return instance;
        }
    };
    
  15. 设计一个红包系统:玩家A发总金额M的红包,拆成N份,每人只能抢一份,金额不小于0且期望相等。你会考虑什么问题?怎么实现?

  16. 如何防止一个人多次抢红包?

  17. 如果要求红包金额不能为0,怎么调整算法?

  18. 你平时开发用AI辅助吗?用的什么模型?怎么解决AI长文输出的幻觉或不稳定问题?

  19. 你用AI做过的最大量级项目代码量多大?怎么保证AI生成代码的质量?

  20. 你平时玩什么类型的游戏?有没有尝试拆解过游戏系统?

  21. 你有什么想问面试官的?

#发面经攒人品#
全部评论

相关推荐

04-30 08:01
东南大学 C++
一、基本情况与工作意愿1.你先做个简单的自我介绍。2.你在字节实习时的作息是怎样的?3.早上九点、晚上十点到十一点下班,这种工作强度你能接受吗?________________________________________二、字节实习项目:特征平台 / 缓存 / SQL 优化4.你做的三档 TTL 分层缓存(2 秒 / 10 秒 / 90 秒)是怎么设计出来的?有数据支撑吗?5.如果业务场景变化了,这些缓存时间你怎么动态调整?6.你这里用到的 concurrent hashmap / unordered map,是加锁实现还是无锁实现?7.你提到的 SQL 签名化、UNION ALL 合并查询、事件驱动失效,这整套优化具体是怎么做的?8.你们的缓存是自己实现的,还是用现成组件,比如 Redis / Memcached?9.这里“事件驱动失效”里的事件来源是什么?触发缓存更新的时机是什么?10.你怎么保证这个事件回调一定成功?如果失败了,会不会导致缓存和数据库不一致?11.如果 SQL 的字段顺序不一样,还能不能归为同一类查询?12.你这些优化效果的数据是怎么采集出来的?13.除了缓存优化,你们还做过哪些性能优化?14.如果现在让你重新设计这套缓存框架,你觉得还有哪些可优化空间?________________________________________三、并发 / 网络模型 / 线程池15.在你的项目里,水平触发和边缘触发是怎么选的?各自适合什么场景?16.你动态线程池的扩容和缩容策略是什么?17.你怎么避免线程频繁创建带来的开销?18.如果线程池队列满了,或者任务队列也满了,你怎么处理?19.遇到突发流量时,你最保底想保证什么?________________________________________四、服务端 / Agent / AI 编程工具22.你做过服务端开发吗?你更偏服务端还是客户端?23.你还做过 Agent 项目,是自己写的还是 AI 辅助写的?24.你现在常用哪些 AI 编程工具?体验怎么样?25.你会对 AI 编程产生危机感吗?26.这些 AI 使用能力基本都是你自己学的吗?________________________________________五、学习能力 / 解决问题能力27.你有没有在一两周内快速学习一项新技术的经历?28.你成长过程中,有没有一个印象很深、最后被你自己解决掉的技术难点?29.你平时除了搜索、看视频,还会通过哪些方式学习或定位问题?30.当你面对源码时,你是怎么理解和真正学会它的?________________________________________六、工程素质 / 团队协作 / 技术关注31.你认为一个好的工程师,除了技术能力,还需要具备哪些素质?32.你们之前团队是怎么做技术分享和技术沉淀的?33.你自己分享过什么内容?34.你会经常关注新技术吗?为什么目前更多停留在“表面了解”这一层?35.你觉得“了解到能用”就够了吗?还是应该继续深挖原理?
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

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