当前位置: 首页 > news >正文

互联网面经

腾讯视频

代码:反转链表,单例模式

RAII,哪里用到

Web服务器怎样处理请求  get\post流程

项目使用的还是http1.0吗;http2.0:二进制、首部压缩、主动推送;Https

Epoll/select/poll          ET/LT

进程地址空间。32位、64位区别

了解go吗

协程,项目中用过吗?  为什么更快?

Linux:

        查进程信息 ps aux

        查内存信息 : Top  查看进程cpu和内存信息

设计模式:

        手写单例模式

        懒汉、饿汉模式区别

        C11版本懒汉怎样保证线程安全

STL:

        Unordered_map   map  底层,区别. 查询时间复杂度

索引、B+树    B+树层数

raft项目

        分布式的使用场景,用来做什么?高并发、多副本????

        Raft算法作用

        强一致、最终一致区别

        http 、rpc区别

        序列化

拥塞控制

面试官建议

        学习etcd,了解go;

        打磨简历,突出和别人不同之处

微信支付

自我介绍:再打磨一下

C++

多态:重载、派生类重写。紧张,说的不好。

纯虚函数、抽象类

构造函数、析构函数是否为虚函数

析构函数不定义为虚函数,一定会造成内存泄漏吗?

基类指针指向派生类对象,若基类析构函数不是虚函数,则调用基类析构函数,不会调用派生类析构函数。这样一定会导致内存泄漏吗?不一定。

如果派生类没有动态申请资源,就不会导致内存泄漏。派生类非指针成员是保存在栈上的,离开派生类对象的作用域,内置类型成员会自动释放,类类型成员会调用其析构函数。派生类指针成员所申请的内存,需要在派生类的析构函数的函数体中手动释放。

析构函数:

        函数体 + 隐式的析构部分(成员自动被销毁,按照初始化逆序)。函数体不直接销毁成员。

  • 销毁类类型成员需要执行成员自己的析构函数,销毁内置类型成员什么也不用做。
  • 指针成员会被自动销毁,但是指针所指向的空间需要使用delete手动销毁
  • 智能指针是类对象,离开作用域时,会自动执行其析构函数

未定义析构函数,编译器会定义一个合成析构函数,函数体为空。

如果函数体什么也不做,是否可以认为析构函数什么也不做?而非指针成员的析构是自动完成的。

c++内存空间

static

指针和引用

        什么时候使用引用?引用的好处

        指针引用区别?

智能指针

RAII

将资源和对象的生命周期绑定。如lock_guard,  智能指针

自己说到了web服务器使用RAII思想自动释放数据库连接,但没说明白。。。。。。。

任务类初始化自动获取数据库连接,析构自动释放数据库连接。

连接断开怎么处理?tcp连接断开,数据库连接断开?布吉岛

RAII作用:

  • 构造函数中获取资源,析构函数中释放资源,简化资源管理,使代码更简洁。
  • 提供异常安全性,确保发生异常时资源正确释放。因为资源的释放放在析构函数中,析构函数是自动执行的,即使发生异常,也能正确释放资源,避免内存泄漏。

vector底层原理,扩容导致迭代器失效 

map、unordered_map底层,红黑树是否了解

快排思想

IO多路复用  LT/ET

epoll就绪文件描述符怎样传递?内核中使用链表维护一个就绪队列,但需要拷贝传递

// 事件数组,作为epoll_wait()的传出参数使用,保存发生变化了的文件描述符的信息
epoll_event events[MAX_EVENT_NUMBER];int number = epoll_wait(epollfd, events, MAX_EVENT_NUMBER, -1);

OS

进程线程区别。说的太少了。

什么时候使用进程,什么时候使用线程:

使用进程:

        需要独立地址空间,互不干扰

        稳定、安全,一个进程崩溃不会影响其它进程

        同时执行多个任务,每个进程使用一个cpu核心,并行执行

使用线程:

        需要共享数据,同一进程的线程共享地址空间

        高并发的情况,使用线程,因为线程切换开销低

死锁

进程通信。最快的方式-共享内存

MySql

引擎

事务特性ACID

事务隔离级别

幻读

索引

覆盖索引创建覆盖索引时可以指定所包含的列,避免回表

raft项目

数据在内存中?怎样存储?

介绍了以下,说的很简单。需要把

没有细问。 

总结:全部八股,基本没有问项目。注重基础。是不是项目不感兴趣?赶紧把协程库做了。

 

http://www.lryc.cn/news/333394.html

相关文章:

  • xss介绍及作用
  • PostgreSQL入门到实战-第二弹
  • 3-【PS让图片动起来】系列1-【导入素材】
  • 基于Java+SpringBoot+Mybaties+layui+Vue+elememt 实习管理系统 的设计与实现
  • 非关系型数据库——Redis基本操作
  • golang语言和JAVA对比
  • 隐私计算实训营学习九:隐语多方安全计算在安全核对的行业实践
  • C#实现只保存2天的日志文件
  • C++ 类和对象(中篇)
  • 可视化场景(9):智慧看板,可能是最直观的数据展示
  • 加密算法(二)
  • 大创项目推荐 深度学习 YOLO 实现车牌识别算法
  • IP知识详解
  • 设计模式:适配器模式
  • 大语言模型落地的关键技术:RAG
  • ffmpeg Android 笔记
  • 本地创建新分支并提交gitee
  • [蓝桥杯 2019 国 C] 数正方形
  • Redis: 配置文件详解(Redis.conf)
  • 学习vue3第十四节 Teleport 内置组件介绍
  • mybatis模糊查询查不到数据
  • Python语法总结:not(常出现错误)
  • 深入理解WebSocket:实时双向通信的利器
  • Gateway是什么?(SpringCloudAlibaba组件)
  • 阿里巴巴拍立淘API新功能揭秘:图片秒搜商品,实现智能化个性化购物新体验
  • 蚓链为移动实体经济加油!
  • MySQL 核心模块揭秘 | 12 期 | 创建 savepoint
  • SpringMVC --- 老杜
  • 详细介绍如何利用 A star(A*)算法解决8数码问题
  • 如何锁定鼠标光标在水平、垂直或45度对角线模式下移动 - 鼠标水平垂直移动锁定器简易教程