自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (5)
  • 收藏
  • 关注

原创 【面试题】Golang 之 Channel(第二篇)

通道是Go中自带的、唯一一个可以满足并发安全性的类型。通道可用于两个 goroutine 之间通过传递一个指定类型的值来同步运行和通讯。

2024-07-11 14:01:10 439

原创 【面试题】Golang (第一篇)

协程:独立的栈空间,共享堆空间,调度由用户自己控制,本质上有点类似于用户级线程,这些用户级线程的调度也是自己实现的。线程:一个线程上可以跑多个协程,协程是轻量级的线程。context是一个接口,它具备手动、定时、超时发出取消信号、传值等功能,主要用于控制多个goroutine之间的协作,尤其是取消操作。一旦取消指令下达,那么被context跟踪的这些goroutine都会收到取消信号,就可以清理和退出操作。

2024-07-11 13:58:35 303

原创 【面试题】MySQL(第四篇)

MySQL的流程涉及连接与认证、查询处理、数据存储与检索以及事务处理等多个环节。通过优化这些环节中的各个步骤,可以显著提高MySQL数据库的性能和可靠性。同时,了解MySQL的执行流程也有助于更好地理解其内部工作机制,从而更好地进行数据库设计和优化。

2024-07-10 09:35:24 643

原创 【面试题】MySQL(第三篇)

存储过程是一组为了完成特定功能的SQL语句集,它存储在数据库中,一次编译后永久有效。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程可以提高数据库操作的效率和安全性,同时减少网络通信量。存储过程是数据库系统中一个非常重要的功能,它能够提高数据库操作的效率和安全性,减少网络通信量,并且能够封装复杂的数据处理逻辑。通过合理使用存储过程,可以优化数据库的性能,提升应用程序的响应速度。定义:触发器是一种特殊类型的程序或事件,当特定的条件满足时,会自动触发执行的操作。

2024-07-10 09:34:02 496

原创 【面试题】MySQL 索引(第二篇)

基本定义:索引是一个排序的列表,其中存储着索引的值和包含这些值的数据所在行的物理地址(或逻辑指针)。这类似于书籍的目录,通过目录可以快速定位到书中的具体内容。物理结构:索引是一个单独的、物理的数据库结构,它是表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。在数据库索引的底层数据结构中,B+树因其良好的性能和广泛的应用场景而被广泛采用。它能够有效地减少磁盘I/O操作次数,提高查询效率,并支持等值查询和范围查询等多种查询方式。

2024-07-08 10:01:35 939

原创 【面试题】MySQL(第一篇)

MySQL常见的面试题

2024-07-08 09:43:42 831

原创 【面试题】Reactor模型

Reactor模型是一种高效、可扩展的并发编程模型,特别适用于处理大量并发连接和I/O操作。通过合理地选择和使用不同类型的Reactor模型,可以满足不同业务需求下的性能要求。

2024-07-05 16:33:55 409

原创 【面试题】IO多路复用模型之poll\epoll

epoll模型通过高效的数据结构和API函数,为Linux系统下的网络编程提供了强大的支持。它不仅能够处理大量的并发连接,还能通过事件驱动的方式提高程序的响应速度和性能。因此,在需要处理大量并发连接的场景中,epoll模型是一个非常好的选择。

2024-07-05 16:32:50 858

原创 【面试题】网络IO多路复用模型之IOCP

IOCP是Input/Output Completion Ports的简称,中文翻译为“输入输出完成端口”。它是一个支持多个同时发生的异步I/O操作的应用程序编程接口(API)。IOCP是一种高效的异步I/O模型,它通过事件驱动的方式和完成队列来处理I/O请求,从而避免了阻塞式I/O带来的性能问题。在需要高性能、高并发、低延迟的应用场景下,IOCP具有很大的优势。

2024-07-03 13:16:16 405

原创 【面试题】网络IO多路复用模型之异步事件

WSAEventSelect模型是WindowsSockets提供的另外一个有用的异步I/O模型。该模型允许一个或多个套接字上接收以事件为基础的网络事件通知。Windows Sockets应用程序在创建套接字后,调用WSAEventSlect()函数,将一个事件对象与网络事件集合关联在一起。当网络事件发生时,应用程序以事件的形式接收网络事件通知。因此,该模型增加了开发的难度,增加了开发人员的编码量。优势:可以在一个非窗口的Windows Sockets程序中,实现多个套接字的管理。

2024-07-03 13:10:24 202

原创 【面试题】网络 IO多路复用模型 select

为什么要引入select模型呢 同步阻塞问题我们可以利用多线程 或者把socket改成非阻塞 当我们要接受数据的时候我们要来回查看接受缓冲区有没有数据这样我们就要来回切换用户和内核浪费时间降低效率 所以我们让一个把所有的socket的有无数据都看了呢。

2024-07-02 14:57:04 341

原创 【面试题】网络IO模型

同步阻塞IO:简单易懂,但不适用于高并发场景。同步非阻塞IO:通过不断轮询检查IO状态,提高CPU利用率,但可能导致CPU使用率过高。IO多路复用:通过select、poll、epoll等机制实现单个进程同时处理多个IO操作,适用于高并发场景。异步IO:用户进程不需要等待IO操作完成,可以显著提高程序性能和资源利用率。在选择IO模型时,需要根据实际应用场景的需求和系统的性能要求来综合考虑。

2024-07-02 14:48:17 512

原创 【面试题】网络IP协议(第六篇)

路由器转发数据包的过程是一个基于路由表的决策过程。通过接收数据包、查找最佳路径、计算转发路径(如果需要)、转发数据包以及可能的路由表更新等步骤,路由器能够准确地将数据包转发到目标网络或目标主机,实现网络通信的功能。

2024-07-01 15:41:40 1008

原创 【面试题】网络UDP协议(第五篇)

UDP协议是面向无连接的、不可靠的传输层协议,可以通过在应用层添加一些机制来实现UDP的可靠传输。序列号和确认应答机制:为每个发送的数据包分配一个唯一的序列号,并且要求接收方发送确认应答来确认已经收到数据包。重传机制:在数据发出后,如果超过某个时间没有收到确认回复,则认为数据包丢失,重新发送数据。数据校验:可以采用哈希算法对发送和接收到的数据进行哈希值校验,比较二者是否一致,如果不一致则数据错误,触发重传。

2024-07-01 15:35:00 456

原创 【面试题】网络TCP之拥塞窗口(第四篇)

拥塞窗口是TCP在发送端维护的一个可滑动窗口,用于限制可能在端对端间传输的未确认分组总数量。它的大小取决于网络的拥塞程度,并且动态地在变化。

2024-06-28 10:58:46 936

原创 【面试题】网络TCP(第三篇)

TCP采用三次握手而不是两次握手,主要是为了确保连接的可靠性和有效性,防止失效的连接请求导致资源浪费,并确保双向通信的可靠性。通过三次握手,客户端和服务器能够确认彼此的状态和序列号,为后续的数据传输打下坚实的基础。

2024-06-28 10:47:54 859

原创 【面试题】网络 DNS协议(第二篇)

DNS是一种将域名转换为IP地址的协议。它的作用是通过将域名解析为相应的IP地址,使得用户可以更方便地访问互联网上的资源,而无需直接记住大量的IP地址。递归查询:客户端向本地域名服务器发送解析请求后,本地域名服务器会向其他域名服务器发起查询请求,并将最终的解析结果返回给客户端。迭代查询:本地域名服务器向其他域名服务器发送解析请求后,其他域名服务器只能给出自己所知道的解析结果,如果不知道,会返回一个指向下一个需要查询的域名服务器的地址。

2024-06-27 14:28:42 344

原创 【面试题】网络 http、https协议(第一篇)

当需要从服务器检索信息时,使用 GET 请求。当需要向服务器提交数据或执行其他非幂等操作时,使用 POST 请求。在传输敏感数据时,务必使用 HTTPS 协议来加密数据。根据需要传输的数据量选择适当的请求方法。如果数据量较大,则使用 POST 请求;如果数据量较小且主要是检索信息,则使用 GET 请求。

2024-06-27 14:21:58 1012

原创 【面试题】Linux下的GDB(第二篇)

当程序崩溃时,操作系统可能会生成一个coredump文件(核心转储文件),该文件包含了程序崩溃时的内存映像和寄存器状态等信息。:在调试多线程程序时,需要特别注意线程间的同步和通信机制,以及避免竞态条件等问题。(当单步调试某一个线程时,保证在调试过程中当前线程不会发生改变,其他线程也会随着被调试线程的单步执行而单步执行)。GDB会自动加载可执行文件和coredump文件,并停留在程序崩溃时的位置。命令监视变量的值,当变量值发生变化时,GDB会自动停止程序。当程序被停住时,可以检查或者说监视此时程序中的数值。

2024-06-25 15:09:02 602

原创 【面试题】Linux 下 MakeFile(第一篇)

Makefile中有一些特殊宏定义,如$@(表示规则中的目标文件集)、$<(表示依赖关系中的第一个文件)等。这些宏定义在规则中非常有用,可以简化Makefile的编写。可以在Makefile中直接定义变量,如VAR=value。在Makefile中引用变量时,使用$(VAR)的格式。此外,还可以在命令行中通过的方式传递变量值给Makefile。

2024-06-25 15:04:51 480

原创 【面试题】操作系统之银行家算法(第七篇)

银行家算法是荷兰学者Dijkstra为银行系统设计的,以确保银行在发放现金贷款时,不会发生不能满足所有客户需要的情况。后来该算法被用在操作系统中,用于避免死锁。核心思想:在进程提出资源申请时,先预判此次分配是否会导致系统进入不安全状态。如果会进入不安全状态,就暂时不答应这次请求,让该进程先阻塞等待。

2024-06-22 14:42:06 729

原创 【面试题】操作系统之死锁(第五篇)

多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。

2024-06-22 14:29:04 951

原创 【面试题】操作系统面试题(第六篇)

这种算法也叫做电梯算法,比如电梯保持按一个方向移动,直到在那个方向上没有请求为止,然后改变方向。但是存在这样的问题,中间部分的磁道会比较占便宜,中间部分相比其他部分响应的频率会比较多,也就是说每个磁道的响应频率存在差异。

2024-06-20 09:55:41 1209

原创 【面试题】操作系统面试题(第四篇)

线程(英语:thread)是操作系统能够进行运算调度的最小单位。它包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

2024-06-20 09:47:33 482

原创 【面试题】操作系统面试题(第三篇)

用户态和内核态是操作系统的两种运行状态。内核态:处于内核态的 CPU 可以访问任意的数据,包括外围设备,比如网卡、硬盘等,处于内核态的 CPU 可以从一个程序切换到另外一个程序,并且占用 CPU 不会发生抢占情况,一般处于特权级 0 的状态我们称之为内核态。用户态:处于用户态的 CPU 只能受限的访问内存,并且不允许访问外围设备,用户态下的 CPU 不允许独占,也就是说 CPU 能够被其他程序获取。

2024-06-19 11:10:58 623

原创 【面试题】操作系统面试题(第二篇)

中断处理程序可以在启动时预先分配一定数量的内存,并在需要时使用这些静态分配的内存。这种方式适用于已知内存需求的情况,但不适用于变动或不确定的需求。操作系统内核通常会维护一个内存池,其中包含了一些预分配的内存块。中断处理程序可以通过内核提供的API请求内存块,然后在使用完毕后释放它们。这种方式可以有效地管理内存,但需要确保内核内存池足够大以满足中断处理程序的需求。伙伴系统是一种内存管理算法,通常用于内核中。

2024-06-19 10:59:01 836

原创 【面试题】 操作系统面试题 (第一篇)

操作系统是管理硬件和软件的一种应用程序。操作系统是运行在计算机上最重要的一种软件,它管理计算机的资源和进程以及所有的硬件和软件。它为计算机硬件和软件提供了一种中间层,使应用软件和硬件进行分离,让我们无需关注硬件的实现,把关注点更多放在软件应用上。通常情况下,计算机上会运行着许多应用程序,它们都需要对内存和 CPU 进行交互,操作系统的目的就是为了保证这些访问和交互能够准确无误的进行。

2024-06-18 10:51:42 592

原创 【面试题】 Redis (下篇)

处理Redis中的大key问题需要根据具体的应用场景和需求来选择合适的策略。通过识别大key、了解其影响、并采取相应的处理策略,可以有效地提高Redis的性能和稳定性。选择合适的fsync策略需要权衡Redis的性能和数据的持久化需求。如果你对数据的持久性有很高的要求,并且可以接受一定的性能损失,那么可以选择always策略。如果你更关注Redis的性能,并且可以接受在系统崩溃时可能丢失一部分数据的风险,那么可以选择no或everysec策略。在大多数情况下,everysec。

2024-06-17 11:20:05 359

原创 【面试题】Redis (上篇)

Redis(Remote Dictionary Server)是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息代理。Redis 支持多种数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)与位图(bitmaps)等类型的数据。Redis 还提供了多种操作这些数据结构的功能,如排序、事务等。高性能:Redis 所有的数据都存储在内存中,读写速度非常快,其性能远超数据库。支持多种数据结构:Redis 支持丰富的数

2024-06-17 11:18:37 822

原创 【面试题】Qt 常见的面试题

激发信号的Qt对象无需知道是那个对象的那个信号槽接收它发出的信号,它只需在适当的时间发送适当的信号即可,而不需要关心是否被接受和那个对象接受了。因此,多个槽函数的执行顺序与排队连接方式一样,先连接的槽函数会先被执行,后连接的槽函数会后被执行。当一个对象的父对象被设置为另一个对象时,它会从原来的对象树中移除,并成为新的对象树的一部分。先连接的槽函数会先被执行,后连接的槽函数会后被执行。1.直接连接方式:触发信号的线程会直接调用与该信号连接的槽函数,并且所有的槽函数都会在同一个线程中被执行。

2024-06-13 10:08:20 527

原创 计算机专业就业前景还有吗?

从IT行业的细分领域来看,无论是软件产品、信息技术服务、云计算、大数据还是集成电路设计等领域,都呈现出稳健的增长态势。虽然计算机专业毕业生一开始的薪资可能并不高,但随着工作经验的积累,薪资水平会有显著提升。在大型互联网公司或外企,计算机专业应届生的薪资水平更高,一些优秀的毕业生甚至可以达到年薪20万以上。计算机专业毕业生不仅可以在IT行业就业,还可以选择成为计算机教师,具有稳定的职业前景和福利待遇。随着数字化转型的加速,计算机技术在医疗、教育、制造业等多个行业展现出巨大的应用潜力和增长前景。

2024-06-12 22:10:50 147

原创 【这个号】

又到了马上秋招找工作的季节,我正常带着我的小伙伴复习规划找工作,服务他们,然后我就意识到如果我把整理好的复习大纲分享出去,让更多伙伴看到,可以服务更多人。所以我的博客就诞生啦,接下来会分享C、C++、操作系统、网络、数据库的面试题。介绍一下我,我从事IT行业培训C++方向十多年,曾经带领了上千名同学找到了理想的工作,去了他们喜欢的平台,比如:耳熟能详的互联网大厂、硬件厂家......希望临阵磨枪,不快也光,可以帮到更多的小伙伴查缺补漏。欢迎即将要找工作或者实习小伙伴们来留言。

2024-06-06 10:57:18 113

原创 【面试题】C++新特性(第六篇)

这些类和原语为C++提供了强大的多线程和同步支持。用于创建和管理线程,和用于在不同线程之间传递数据和异常,和std::mutex用于同步线程的执行和保护共享数据。在编写多线程程序时,正确地使用这些工具可以确保程序的正确性和性能。

2024-06-06 10:32:49 537

原创 【最全】C++面试题 STL (第五篇)

STL(Standard Template Library,标准模板库)是C++的一个重要组成部分,它包含了一系列容器、迭代器、算法和函数对象,用于简化常见的编程任务。函数对象(也称为仿函数或函子)在C++中是一种特殊的对象,它们具有类似函数的行为,即可以被调用。函数对象实际上是具有operator()重载的类对象,这使得它们能够像普通函数那样被调用。函数对象的主要优点之一是它们可以携带状态。与普通的函数指针或函数相比,函数对象可以包含自己的数据成员,并在其operator()的调用中使用这些数据。

2024-06-05 13:27:00 742

原创 【最全】C++面试题 (第四篇)

volatilemutable和explicit在各自的编程语言中扮演着不同的角色。volatile用于确保并发编程中数据的一致性。mutable用于在C++中突破const的限制,允许在const上下文中修改成员变量。explicit(虽然不是关键字)在编程中强调需要明确指出的操作或声明,提高代码的可读性和明确性。​4.)示例​1. volatile (在C++中)​#include // 也可以使用 std::atomic 来代替 volatile。

2024-06-05 09:33:25 705

原创 【最全】C++面试题 (第三篇)

秋招在即,帮助大家整理C++面试题,高效复习

2024-06-04 15:12:12 493

原创 【最全】C++面试题 虚函数(第二篇)

静态联编和动态联编的主要区别在于函数调用或方法调用的确定时机。静态联编在编译时确定,而动态联编在运行时确定。动态联编是实现面向对象编程中多态性的关键机制之一。

2024-06-04 14:30:57 1079

原创 【最全】C++面试题 (第一篇)

用于存储和操作数据。对象是指具有。

2024-06-03 16:19:01 350

原创 【最全】C面试题

结构体是一种用户自定义的数据类型,它可以包含多个不同类型的变量,这些变量可以通过一个结构名来访问。内存泄漏是指程序在运行时动态分配的内存未被正确释放,导致可用内存逐渐减少。避免内存泄漏的方法包括在不再需要动态分配的内存时使用free()函数释放,并确保每个malloc()calloc()或realloc()调用都有对应的free()调用。指针是C语言中一种特殊的数据类型,用于存储其他数据类型的内存地址。通过指针可以直接访问和修改内存中的数据。指向常量的指针和常指针的区别?指向常量的指针(如。

2024-06-03 16:15:14 1570

1、单页简历 150款.zip

适合大学毕业生的简历模板

2021-10-12

0523上午视频.zip

windoes任务管理器的代码,包含获取windows中的进程信息获取(名称、线程数、进程ID),结束进程。

2020-05-23

VC++精彩案例

助你开发顺利哦.。。很多精彩的案例分析 本人认为不错哦

2012-03-05

C_C++指针经验总结

很好的一本总结C和C++的书,有助于您更深一层的开发

2012-03-05

常用的PHP软件

做一个属于自己的网站。。带你走向网络的世界 零基础

2012-03-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除