互联网面经

腾讯视频

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

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.mzph.cn/news/797319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Canon CMOS图像传感器应用和选型

一、CCD和CMOS图像传感器 常见的数字感光元件有两种:CCD(电荷耦合器件)和CMOS(互补金属氧化物半导体)。1980年代,CCD进入消费级市场,并长期占据中高端市场。CMOS图像传感器最初作为廉价、低画质…

开启虚拟机时出现此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态怎么解决

问题描述 虚拟机安装完成后,点击开启此虚拟机弹出系统提示 原因分析: Intel VT-x 处于禁用状态,需要开启。 解决方案: 以联系小新笔记本电脑为例,进入BIOS界面,将Intel Virtual Technology设置成Enabl…

Vue+OpenLayers7入门到实战:OpenLayers如何销毁已经创建好的地图容器

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上如何销毁已经创建好的地图容器。 在某些场景下,可能会需要销毁之前的地图,重新创建新的地图的需要,因此本章介绍一下在开始创建地图前如何先销毁之前的地图的功能。…

移动机器人运动规划 | 基于图搜索的Dijkstra 和 A*算法详解

Dijkstra 算法 Dijkstra 算法与BFS算法的区别就是 : 从容器中弹出接下来要访问的节点的规则不同 BFS 弹出: 层级最浅的原则,队列里最下方的元素 Dijkstra 弹出: 代价最小的节点g(n) g(n) :表示的是从开始节点到当前n节点的代价累加 Dijkstra在扩展的时候&#x…

利用native的方式实现跨线程调用

简介 在OpenHarmony应用开发实践中,经常会遇到一些耗时的任务,如I/O操作、域名解析以及复杂计算等。这些任务如果直接在主线程中执行,将会严重阻塞主线程,影响后续任务的正常流程,进而导致用户界面响应延迟甚至卡顿。…

从零开始实现一个RPC框架(三)

前言 到目前为止我们的框架已经有了一部分服务治理的功能,这次我们在之前的基础上实现一些其他功能。篇幅所限这里只列举部分实现 zookeeper注册中心 实现我们之前的注册中心的接口即可,这里使用了docker的libkv而不是直接用zk客户端(从rp…

【鸿蒙 HarmonyOS】获取设备的地理位置

一、背景 获取移动设备的地理位置,包含:经度、维度、具体地理位置等,地理位置信息能在许多业务场景中被应用,如导航、地图服务、位置服务、社交媒体等。 下面以一个Demo例子,来实现获取设备地理位置的功能 官方文档…

【MySQL】跟着示例学 SQL

下面所有示例均来自 SQL之母 - SQL自学网站 -- 查询所有学生 -- 请编写 SQL 查询语句,从名为 student 的数据表中查询出所有学生的信息。 select * from student; -- 查询学生的姓名和年龄 -- 请编写一条 SQL 查询语句,从名为 student 的数据表中选择出…

Java入门基础知识第五课(超基础,超仔细)——选择结构

今天主要讲一下if选择结构以及如何利用Math.random()来获取随机数。 流程控制:用来控制代码的执行顺序 顺序结构:代码从上往下按照顺序依次执行 选择结构:根据条件选择性的执行某部分代码 循环结构:反复执行一段代码 一、i…

软件测试下的AI之路(4)

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

实时计算平台设计方案:913-基于100G光口的DSP+FPGA实时计算平台

基于100G光口的DSPFPGA实时计算平台 一、产品概述 基于以太网接口的实时数据智能计算一直应用于互联网、网络安全、大数据交换的场景。以DSPFPGA的方案,体现了基于硬件计算的独特性能,区别于X86GPU的计算方案,保留了高带宽特性&…

Ceph学习 - 1.存储知识

文章目录 1.存储基础1.1 基础知识1.1.1 存储基础1.1.2 存储使用 1.2 文件系统1.2.1 简介1.2.2 数据存储1.2.3 存储应用的基本方式1.2.4 文件存储 1.3 小结 1.存储基础 学习目标:这一节,我们从基础知识、文件系统、小节三个方面来学习。 1.1 基础知识 1.…

UART设计

一、UART通信简介 通用异步收发器, 特点:串行、异步、全双工通信 优点:通信线路简单,传输距离远 缺点:传输速度慢 数据传输速率:波特率(单位:baud,波特) …

如何高效学习Python编程语言

理解Python的应用场景 不同的编程语言有不同的发展历史和应用场景,了解Python主要应用在哪些领域对于学习它会有很大帮助。Python最初是一种通用脚本语言,主要用于系统级任务自动化。随着时间的推移,它逐步成为数据处理、科学计算、Web开发、自动化运维等众多领域的主要编程语…

Navicat设置mysql权限

新建用户: 注意:如果不生效执行刷新命令:FLUSH PRIVILEGES; 执行后再重新打开查看; 查询权限命令:1234为新建的用户名,localhost为访问的地址 SHOW GRANTS FOR 1234localhost;如果服务器设置服务器权限后可能会出现权…

【算法】求一个数组中三个数乘积最大值 - 线性扫描

题目 给定一个数组,找出数组中乘积最大的三个数。 原理 一个数组中最大值只有两种情况:两个最小的负数和一个最大的正数 & 三个最大的正数。线性扫描找出这五个数字,即可求出最大值。 代码 public static void main(String[] args) {…

潜伏三年,核弹级危机一触即发,亚信安全深度分析XZ Utils后门事件

2024年3月29日星期五上午8点,有研究人员称xz/liblzma中的后门导致SSH服务器内存泄露,使得SSH服务异常(https://www.openwall.com/lists/oss-security/2024/03/29/4)。github中“xz”压缩工具主要由Larhzu和Jia Tan共同负责维护&am…

QToolTip设置背景色没有生效原因与解决方法

设置全局QToolTip的背景色,有两种方法: 1. 样式表设置; 2. QToolTip::setPalette(pal);调色板设置; QPalette pal QToolTip::palette(); //修改背景色 pal.setColor(QPalette::Inactive,QPalette::ToolTipBase,QColor(240, 25…

力扣25. K 个一组翻转链表

Problem: 25. K 个一组翻转链表 文章目录 题目描述思路复杂度Code 题目描述 思路 1.创建虚拟头节点dummy并将其next指针指向head,创建指针pre、end均指向dummy; 2.编写反转单链表的函数reverse 3.当end -> next 不为空时: 3.1.每次k个一组…

Java强连通分量知识点(含面试大厂题和源码)

在大厂面试中,与拓扑排序相关的问题通常涉及到对图的处理和算法设计。以下是三道可能出现在大厂面试中的编程题目,以及相应的Java源码实现。 题目 1:课程依赖关系 描述: 给定一个课程列表和课程之间的依赖关系,为所有…