自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(173)
  • 收藏
  • 关注

原创 英语口语面试题

One of my key strengths is my strong communication skills, which allow me to collaborate effectively with others. I am also highly adaptable, enabling me to thrive in dynamic environments and handle unexpected challenges. Additionally, I am detail-oriented

2024-09-09 23:05:22 750

原创 C++:面经3

在C++中,定义一个常量可以使用const关键字。例如,这行代码定义了一个名为MAX_VALUE的常量,其值为100,且该值在程序运行期间不能被修改。常量的值必须在声明时或编译时就确定,因此它们通常用于那些在程序执行期间不会改变的量。

2024-09-07 23:05:53 895

原创 LeetCode 1456. 定长子串中元音的最大数目

【代码】LeetCode 1456. 定长子串中元音的最大数目。

2024-09-06 18:44:46 95

原创 LeetCode 605. 种花问题

【代码】LeetCode 605. 种花问题。

2024-09-06 17:27:46 376

原创 LeetCode 1071. 字符串的最大公因子

【代码】LeetCode 1071. 字符串的最大公因子。

2024-09-06 17:13:24 83

原创 C++:面经2

TCP粘包和拆包是网络通信中常见的问题,主要是由于TCP协议的特性以及网络传输的不稳定性导致的。‌粘包和拆包的定义‌粘包‌:多个小数据包被合并成一个大数据包发送,导致接收端无法正确区分每个数据包的边界。‌拆包‌:一个大数据包被拆分成多个小数据包发送,导致接收端无法正确组装这些数据包。发生的原因‌网络延迟‌:数据包的发送和接收可能因为网络延迟而导致粘包或拆包。‌缓存区大小不合适‌:如果缓存区大小设置不当,可能导致数据包过大或过小,从而引起粘包或拆包。‌数据长度超过缓存区大小。

2024-09-05 18:36:18 877

原创 C++:面经1

此外,如果选定的页框包含的数据需要被写回到磁盘,因为该页框的数据已经修改,操作系统会先将数据写回磁盘,然后标记页框为可用状态。为了保证可靠性,服务器应该通过多种方式来判断客户端是否断线,并且在判断客户端断线后及时处理,关闭相应的连接资源,避免资源的浪费和影响服务器的性能。首先,自增ID的一个潜在问题是它们不具有连续性。综上所述,虽然自增ID在大多数情况下能够满足基本的需求,但在特定场景下,如需要高度连续性的ID、多表合并、分布式数据库应用或对DBMS重启后的行为有特定要求时,自增ID可能不是最佳选择。

2024-09-04 18:04:07 1354

原创 C++:4.STL

1.4.1 请说说 STL 的基本组成部分标准模板库(Standard Template Library,简称STL)简单说,就是一些常用数据结构和算法的模板的 集合。广义上讲,STL分为3类:Algorithm(算法)、Container(容器)和Iterator(迭代器),容器和算 法通过迭代器可以进行无缝地连接详细的说,STL由6部分组成:容器(Container)、算法(Algorithm)、 迭代器(Iterator)、仿函数 (Function object)、适配器(Adaptor

2024-08-31 19:50:19 627

原创 C++:3.面向对象

1. 面向对象是一种编程思想,把一切东西看成是一个个对象,比如人、耳机、鼠标、水杯等,他们各 自都有属性,比如:耳机是白色的,鼠标是黑色的,水杯是圆柱形的等等,把这些对象拥有的属性 变量和操作这些属性变量的函数打包成一个类来表示2. 面向过程和面向对象的区别面向过程:根据业务逻辑从上到下写代码面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的 重写过程只定义了析构函数,编译器将自动为我们生成拷贝构造函数和默认构造函数。默认构造函数和初始化构造函数。

2024-08-30 19:50:57 1018

原创 C++:2.内存

BSS段通常是指用来存放程序中未初始化的或者初始化为0的全局变量和静态变量的一块内存区域。特 点是可读写的,在程序执行之前BSS段会自动清0。栈使用的是一级缓存, 它们通常都是被调用时处于存储空间中,调用完毕立 即释放;栈由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等;局部变量是在栈中分配内存,超过作用域就 自动回收。在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。如上图,从低地址到高地址,一个程序由代码段、数据段、BSS段、堆、共享区、栈等组成。

2024-08-30 18:48:07 611

原创 C++:1.语言基础

1. 概念:函数指针就是指向函数的指针变量。每一个函数都有一个入口地址,该入口地址就是函数指 针所指向的地址。2. 定义形式如下:f = &func;3. 函数指针的应用场景:回调(callback)。我们调用别人提供的 API函数(Application Programming Interface,应用程序编程接口),称为Call;如果别人的库里面调用我们的函数,就叫 Callback。

2024-08-30 17:28:21 1116

原创 计算机网络重要知识

半连接队列(也称 SYN Queue):当服务端收到客户端的 SYN 请求时,此时双方还没有完全建立连接,它会把半连接状态的连接放在半连接队列。全连接队列(也称 Accept Queue):当服务端收到客户端对 ACK 响应时,意味着三次握手成功完成,服务端会将该连接从半连接队列移动到全连接队列。如果未收到客户端的 ACK 响应,会进行重传,重传的等待时间通常是指数增长的。如果重传次数超过系统规定的最大重传次数,系统将从半连接队列中删除该连接信息。

2024-08-30 15:03:46 425

原创 计算机网络基础知识

每个连入互联网的设备或域(如计算机、服务器、路由器等)都被分配一个IP 地址(Internet Protocol address),作为唯一标识符。每个 IP 地址都是一个字符序列,如 192.168.1.1(IPv4)、2001:0db8:85a3:0000:0000:8a2e:0370:7334(IPv6)。当网络设备发送 IP 数据包时,数据包中包含了源 IP 地址和目的 IP 地址。源 IP 地址用于标识数据包的发送方设备或域,而目的 IP 地址则用于标识数据包的接收方设备或域。

2024-08-29 15:56:32 851

原创 操作系统:5.文件系统

在 Linux/类 Unix 系统上,文件链接(File Link)是一种特殊的文件类型,可以在文件系统中指向另一个文件。一次磁盘读写操作的时间由磁盘寻道/寻找时间、延迟时间和传输时间决定。磁盘调度算法可以通过改变到达磁盘请求的处理顺序,减少磁盘寻道时间和延迟时间。磁盘调度算法是操作系统中对磁盘访问请求进行排序和调度的算法,其目的是提高磁盘的访问效率。提高文件系统性能的方式有哪些。

2024-08-29 12:13:36 759

原创 操作系统:4.内存管理

硬性页缺失(Hard Page Fault):物理内存中没有对应的物理页。于是,Page Fault Handler 会指示 CPU 从已经打开的磁盘文件中读取相应的内容到物理内存,而后交由 MMU 建立相应的虚拟页和物理页的映射关系。软性页缺失(Soft Page Fault):物理内存中有对应的物理页,但虚拟页还未和物理页建立映射。于是,Page Fault Handler 会指示 MMU 建立相应的虚拟页和物理页的映射关系。

2024-08-29 12:04:01 607

原创 Linux 基础知识

类 Unix 系统:Linux 是一种自由、开放源码的类似 Unix 的操作系统Linux 本质是指 Linux 内核:严格来讲,Linux 这个词本身只表示 Linux 内核,单独的 Linux 内核并不能成为一个可以正常工作的操作系统。所以,就有了各种 Linux 发行版。Linux 之父(林纳斯·本纳第克特·托瓦兹 Linus Benedict Torvalds):一个编程领域的传奇式人物,真大佬!我辈崇拜敬仰之楷模。他是Linux 内核。

2024-08-28 18:31:24 578

原创 操作系统:3.死锁

死锁(Deadlock)描述的是这样一种情况:多个进程/线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于进程/线程被无限期地阻塞,因此程序不可能正常终止。进程占用资源需求资源AXYBYX此时,进程 A 占用资源 X 并且请求资源 Y,而进程 B 已经占用了资源 Y 并请求资源 X。两个进程都在等待对方释放资源,无法继续执行,陷入了死锁状态。

2024-08-28 16:30:20 722

原创 操作系统:2.进程和线程

进程(Process)是指计算机中正在运行的一个程序实例。举例:你打开的微信就是一个进程。线程(Thread)也被称为轻量级进程,更加轻量。多个线程可以在同一个进程中同时执行,并且共享进程的资源比如内存空间、文件句柄、网络连接等。举例:你打开的微信里就有一个线程专门用来拉取别人发你的最新的消息。

2024-08-28 16:21:44 889

原创 操作系统:1.基础

操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。操作系统本质上是一个运行在计算机上的软件程序 ,主要用于管理计算机硬件和软件资源。举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。操作系统存在屏蔽了硬件层的复杂性。操作系统就像是硬件使用的负责人,统筹着各种相关事项。操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。

2024-08-28 16:20:43 739

原创 数据库进阶篇: 6.InnoDB引擎

MySQL5.5 版本开始,默认使用InnoDB存储引擎,它擅长事务处理,具有崩溃恢复特性,在日常开发中使用非常广泛。下面是InnoDB架构图,左侧为内存结构,右侧为磁盘结构。当我们创建了一张表,InnoDB会自动添加三个隐藏字段及其含义分别是:而上述的前两个字段是肯定会添加的, 是否添加最后一个字段DB_ROW_ID,得看当前表有没有主键,如果有主键,则不会添加该隐藏字段。回滚日志,在insert、update、delete的时候产生的便于数据回滚的日志。

2024-08-27 22:48:22 635

原创 数据库进阶篇 :5.锁

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。全局锁:锁定数据库中的所有表表级锁:每次操作锁住整张表。行级锁:每次操作锁住对应的行数据。

2024-08-27 16:26:45 844

原创 数据库进阶篇:4.视图/存储过程/触发器

视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。

2024-08-27 15:22:07 850

原创 数据库进阶篇 :3.SQL优化

在之前的测试中,我们发现,如果数据量很大,在执行count操作时,是非常耗时的。MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个 数,效率很高;但是如果是带条件的count,MyISAM也慢。InnoDB 引擎就麻烦了,它执行 count(*) 的时候,需要把数据一行一行地从引擎里面读出 来,然后累积计数。

2024-08-27 14:40:48 863

原创 数据库进阶篇 :2.索引

索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构 上实现高级查找算法,这种数据结构就是索引。MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的索引结构,主要包含以下几种:上述是MySQL中所支持的所有的索引结构,接下来,我们再来看看不同的存储引擎对于索引结构的支持 情况。

2024-08-27 11:46:37 1069

原创 数据库进阶篇:1.存储引擎

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。我们可以在创建表的时候,来指定选择的存储引擎,如果没有指定将自动选择默认的存储引擎。1). 建表时指定存储引擎CREATE TABLE 表名(字段1 字段1类型 [ COMMENT 字段1注释 ] ,......字段n 字段n类型 [COMMENT 字段n注释 ]) ENGINE = INNODB [ COMMENT 表注释 ];2). 查询当前数据库支持的存储引擎。

2024-08-27 10:30:18 614

原创 数据库基础篇:6.事务

事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。注意: 默认MySQL的事务是自动提交的,也就是说,当执行完一条DML语句时,MySQL会立即隐 式的提交事务。

2024-08-26 16:08:06 294

原创 数据库基础篇:5.多表查询

多表查询就是指从多张表中查询数据。在SQL语句中,如何来去除无效的笛卡尔积呢?我们可以给多表查询加上连接查询的条件即可。1). 概念SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询。子查询外部的语句可以是INSERT / UPDATE / DELETE / SELECT 的任何一个。2). 分类根据子查询结果不同,分为:A. 标量子查询(子查询结果为单个值)B. 列子查询(子查询结果为一列)C. 行子查询(子查询结果为一行)D. 表子查询(子查询结果为多行多列)

2024-08-26 15:55:52 620

原创 数据库基础篇:4.约束

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确、有效性和完整性。外键:用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。

2024-08-26 15:10:55 262

原创 数据库基础篇:3.函数

函数 是指一段可以直接被另一段程序调用的程序或代码。也就意味着,这一段程序或代码在MySQL中已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。MySQL中的函数主要分为以下四类: 字符串函数、数值函数、日期函数、流程函数。

2024-08-26 14:47:53 109

原创 数据库基础篇:2.SQL

SQL 全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了 一套操作关系型数据库统一标准。

2024-08-26 14:32:40 1033

原创 数据库基础篇:1.MySQL概述

一个数据库服务器中可以创建多个数据库,一个数据库中也可以包含多张表,而一张表中又可以包 含多行记录。我们可以通过MySQL客户端连接数据库管理系统DBMS,然后通过DBMS操作数据库。可以使用SQL语句,通过数据库管理系统操作数据库,以及操作数据库中的表结构及数据。

2024-08-26 11:44:55 182

原创 LeetCode 643. 子数组最大平均数 I

【代码】LeetCode 643. 子数组最大平均数 I。

2024-08-13 22:56:18 113

原创 LeetCode 334. 递增的三元子序列

【代码】LeetCode 334. 递增的三元子序列。

2024-08-13 22:49:55 271

原创 LeetCode 345. 反转字符串中的元音字母

【代码】LeetCode 345. 反转字符串中的元音字母。

2024-08-13 22:27:09 244

原创 LeetCode 1431. 拥有最多糖果的孩子

【代码】LeetCode 1431. 拥有最多糖果的孩子。

2024-08-13 18:38:53 92

原创 LeetCode 1768. 交替合并字符串

【代码】LeetCode 1768. 交替合并字符串。

2024-08-13 17:29:44 79

原创 LeetCode 1492. n 的第 k 个因子

【代码】LeetCode 1492. n 的第 k 个因子。

2024-08-13 16:41:55 291

原创 LeetCode 409. 最长回文串

【代码】LeetCode 409. 最长回文串。

2024-08-13 16:16:23 222

原创 LeetCode 107. 二叉树的层序遍历 II

【代码】LeetCode 107. 二叉树的层序遍历 II。

2024-08-13 15:48:05 414

原创 LeetCode 365. 水壶问题

【代码】LeetCode 365. 水壶问题。

2024-08-13 15:18:46 245

空空如也

空空如也

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

TA关注的人

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