网易互娱客户端&服务端开发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. 你有什么想问面试官的?

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

相关推荐

评论
1
1
分享

创作者周榜

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