自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP首部、和UDP的区别、怎么实现可靠链接

连接的终止采用四次挥手的方式,发送方发送一个连接关闭请求,接收方回复确认,然后接收方发送一个连接关闭请求,发送方回复确认。需要注意的是,不是所有的TCP实现都支持所有的TCP选项,因此在使用TCP选项时,需要确保与对方的TCP协议栈兼容,并避免在不支持的情况下使用不合适的选项。通过这些机制,TCP可以保证数据的可靠传输,确保数据包有序到达,并在网络拥塞时进行适当的调整,从而实现了可靠的连接。TCP选项提供了对TCP连接的灵活控制和增强功能,使得TCP协议能够更好地适应不同的网络环境和满足特定的应用需求。

2024-01-17 10:28:55 943 1

原创 OSI、TCP、IP之间的差异

OSI七层模型提供了一个标准的框架,使得不同厂商的网络设备可以遵循相同的规范来实现互操作性,从而促进了计算机网络的发展和应用。然而,实际上,现实中更常用的是TCP/IP模型,它是互联网使用的网络协议栈,而且与OSI七层模型有很多相似之处。总体而言,TCP/IP模型是互联网通信的基础,它定义了不同层次之间的协议和功能,使得互联网中的各种设备和应用程序能够相互通信和交互。在实际应用中,TCP/IP模型是更为重要和广泛采用的网络协议栈,因为它是互联网的基础,并在大多数计算机网络中使用。

2024-01-17 10:27:13 439

原创 网络--内存管理面经

虚拟内存管理通过页表和页表项的转换,使得每个进程认为自己有连续的地址空间,并提供地址空间隔离、虚拟内存保护和页面置换等功能,从而提高了计算机系统的灵活性和效率。在虚拟内存管理中,每个进程拥有自己的页表,这样不同的进程可以有相同的虚拟地址,但由于使用不同的页表,它们会映射到不同的物理地址。此时,操作系统会介入,查找该虚拟页面的数据或代码,将其从磁盘加载到一个空闲的物理页面,并更新页表,建立虚拟页面到物理页面的映射关系。页表项是页表中的一个单元,每个页表项记录了一个虚拟页面与对应的物理页面之间的映射关系。

2024-01-17 10:25:30 360

原创 进程与线程知识点大全

正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为阻塞状态,如进程提出输入/输出请求而变成等待外部设备传输信息的状态,进程申请资源(主存空间或外部设备)得不到满足时变成等待资源状态,进程运行中出现了故障(程序出错或主存储器读写错等)变成等待干预状态等等。处于阻塞状态的进程,在其等待的事件已经发生,如输入/输出完成,资源得到满足或错误处理完毕时,处于等待状态的进程并不马上转入执行状态,而是先转入就绪状态,然后再由系统进程调度程序在适当的时候将该进程转为执行状态。条件变量始终与互斥锁一起使用。

2024-01-17 10:23:13 874

原创 Git的基本命令--建议收藏!

保存未提交的工作现场,pop参数代表恢复并删除最新的stash,list参数代表查看当前stash的所有内容,show参数代表查看最新stash和当前目录的差异。,--hard参数代表撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交。用于远程仓库的操作,-v参数代表显示远程仓库,add参数代表添加远程仓库,rm参数代表删除远程仓库。git pull [远程主机名] [远程分支名]:[本地分支名]git push [远程主机名] [本地分支名]:[远程分支名]

2024-01-17 10:19:05 316

原创 Python实战项目:文件内容搜索工具

流程创建控件关键字的标签和输入文件类型的标签和输入搜索按钮文件夹选择框列表框(滚动栏)子窗口文本框(滚动栏)点击搜索按钮,选择文件路径指定路径下过滤文件,文件插入到列表框双击文件,打开新的窗口,读取文件内容并插入到文本框中练习模块tkinter输入框文本和列表框布局容器和子窗体事件对话框代码主界面控件添加主界面控件布局。

2024-01-17 10:17:01 598

原创 Python实战项目:人脸识别

流程人脸录入打开摄像头输入名字检测人脸保存图片训练数据读出全部图片训练数据保存数据人脸识别打开摄像头检测人脸识别人脸用到的模块os:为操作系统的访问提供相关功能的支持(处理文件和目录)计算机视觉和机器学习软件库opencv-contrib-python:opencv 的扩展模块练习模块绘图功能捕捉摄像头实时画面人脸检测。

2024-01-17 09:53:18 492

原创 Python实战项目:使用Excel画画

将图片转为 Excel,图片中的每一个像素转化为 Excel 中的每一个单元格流程创建 Excel 表,并设置行高和列宽打开图片遍历图片每一个像素点提取每个像素点的颜色颜色填充对应的单元格注意的问题(边界和错误)图片尺寸过大:进行缩放颜色过多(Excel 不支持):减少颜色用到的模块图像处理库:创建 Excel 文件的模块练习两个模块:打开图片、获取图片尺寸、图片缩放、获取像素点颜色代码。

2024-01-17 09:41:09 436

原创 C++面试实战问题之多态

虚继承用于解决多重继承中的菱形继承问题,当一个派生类从多个基类继承,并且这些基类之间存在共同的基类时,就会出现菱形继承的情况。但是,如果基类的析构函数不是虚函数,而我们通过基类指针或引用来删除一个派生类对象,那么只会调用基类的析构函数,而不会调用派生类的析构函数。使用:虚函数可以通过基类指针或引用来调用,实际执行的是派生类中的版本,这是多态的一种体现。派生类可以选择是否重写基类的虚函数,但如果派生类重写了基类的虚函数,那么该函数在派生类中将被自动视为虚函数。通过传递不同的参数,可以创建不同初始状态的对象。

2024-01-17 09:33:39 417

原创 C++面试实战问题之关键字

关键字用于标记变量为易变的,告诉编译器不要对其进行优化,确保每次访问都从内存中读取最新的值,以及对该变量的写操作立即写入内存。关键字修饰构造函数时,该构造函数只能用于显式地创建对象,而不能通过隐式的类型转换进行对象的创建或初始化。关键字声明一个静态成员变量或静态成员函数,它们与类的实例无关,可通过类名直接访问。用于限定变量、函数或类的作用域,使其仅在当前源文件中可见或保持静态特性。1.extern和static的区别,什么情况用前者,什么情况用后者。用于声明引用其他文件中定义的全局变量或函数。

2024-01-16 13:30:06 387

原创 C++面试实战之内存泄露

考虑替代方案:如果频繁出现内存分配失败的情况,考虑使用更高效的内存管理方式,如对象池、内存池等,以提前分配好一定数量的内存块,并在需要时从中获取。返回空指针时,表示内存分配失败,通常是由于可用的内存块不足或分配的内存大小超出了系统所能提供的限制。释放不必要的内存:如果程序中有已经分配的但暂时未使用的大内存块,可以考虑释放掉这些不必要的内存,以腾出空间供分配失败的情况使用。优化内存使用:评估代码中对内存的使用情况,尽可能减少动态内存分配的需求,并优化算法、数据结构等,以降低内存消耗。

2024-01-16 13:28:51 432

原创 C++面试实战问题之new和malloc

必须保证 this 对象是通过 new(不是 new[]、不是 placement new、不是栈上、不是全局、不是其他对象成员)分配的。作用:重新调整之前分配的内存块的大小。分配的内存只在函数的生命周期内有效,不需要手动释放。可能会更改内存块的位置,因此应该谨慎处理指向旧内存块的指针。只是简单地分配指定大小的内存块,不进行类型检查和对象的构造。分配的内存中的内容是未初始化的,需要手动进行初始化。之后继续使用该对象的指针,否则会导致悬挂指针的问题。返回指向分配内存的指针,且与要分配的类型相匹配。

2024-01-16 13:17:17 378

原创 C++面试实战问题之队列、链表

需要根据具体的应用场景选择适合的链表类型。双向链表(Doubly Linked List)是一种链表的扩展形式,除了包含指向下一个节点的指针外,还包含指向上一个节点的指针。循环队列的实现:循环链表也可以用于实现循环队列,通过头指针和尾指针分别指向队列的头部和尾部,实现元素的循环入队和出队操作。实现栈和队列:使用单向链表可以方便地实现栈和队列的操作,例如,将链表头作为栈顶,每次插入和删除节点都在头部进行。图的表示:在图的算法中,双向链表可以用于表示邻接表,记录图中每个节点的邻居节点,方便图的遍历和操作。

2024-01-16 13:08:36 364

原创 C++面试合集问题之堆、栈

将对象的生成限制在堆上可以更加灵活地控制对象的生命周期,避免了在栈上创建对象后由于作用域结束而自动释放资源的情况。原因:将对象限制在栈上生成具有以下优势:首先,栈上分配的对象不需要手动管理其生命周期,对象的销毁由编译器自动处理,减少了手动释放资源的麻烦。其次,栈上分配的对象的创建和销毁速度更快,因为它们仅仅是在栈上分配一块内存,不需要进行动态内存分配和释放。在栈上分配的对象会在其所属作用域结束时自动销毁,从而实现只能在栈上生成对象的效果。栈:栈的内存分配是连续且固定的,因此分配和释放内存的效率很高。

2024-01-16 13:07:14 394

原创 C++面试问题合集之哈希

在链地址法中,当负载因子较高时,可以通过增加哈希桶的数量来分散元素,从而减少冲突发生的概率,并保持较低的平均查找时间。再哈希法可以采用不同的哈希函数或者在同一个哈希函数上应用不同的哈希算法来计算新的哈希值,以期望分布更均匀,减少冲突的概率。链表法(Chaining):将哈希表的每个位置(桶)维护一个链表,当发生哈希冲突时,将冲突的元素插入到对应位置的链表中。需要注意的是,由于哈希函数将无限数量的输入映射到有限数量的哈希值,因此可能会出现哈希碰撞的情况,即不同的输入数据生成相同的哈希值。

2024-01-16 13:05:24 434

原创 C++面试合计问题之vector

reserver修改的是vector的capacity的值,只表示一种尝试,当vector的现有实际size大于reserve(n)的n值时,vector不做任何修改。resize 改变vector的实际大小,可能导致vector中的多余元素被删除,接受两个参数的resize不仅改变vector大小,也改变元素的默认值。reserve 的作用是在vector初始化时,根据预估的所需要的内存大小 提前申请内存,目的是避免程序运行中重复的申请、释放内存空间,以提高程序的效率;可能是一个更好的选择。

2024-01-16 13:03:44 484

原创 Excel常用函数--运营数据分析必会(零基础小白)

IF函数是Excel中最常用的逻辑函数之一,它的作用是根据条件判断返回不同的结果。其中,条件可以是任何逻辑表达式,返回值1表示当条件为真时返回的结果,返回值2表示当条件为假时返回的结果。例如,我们需要根据学生成绩来判断是否及格。如果成绩大于等于60分,则返回“及格”,否则返回“不及格”。

2024-01-16 11:40:35 566

原创 常见的智能指针

为了在结构较复杂的情景中执行上述工作,标准库提供 weak_ptr、bad_weak_ptr 和 enable_shared_from_this 等辅助类。一旦拥有着被销毁或编程 empty,或开始拥有另一个对象,先前拥有的那个对象就会被销毁,其任何相应资源亦会被释放。weak_ptr 允许你共享但不拥有某对象,一旦最末一个拥有该对象的智能指针失去了所有权,任何 weak_ptr 都会自动成空(empty)。多个智能指针可以共享同一个对象,对象的最末一个拥有着有责任销毁对象,并清理与该对象相关的所有资源。

2024-01-16 11:33:47 364

原创 产品运营是做什么的,如何做好产品运营

产品运营是整个产品开发和运营中的重要环节,它涉及到市场调研、用户需求分析、数据分析、产品设计和用户运营等多个方面。在做好产品运营的过程中,需要深入了解用户需求,优化产品设计与体验,制定有效的市场推广策略,加强用户运营和增值服务,持续优化产品体验和功能,并协调各部门之间的工作。只有不断优化产品体验和运营,提高用户满意度和留存率,才能推动产品的长期发展。

2024-01-16 11:27:05 526

原创 C++面向对象三大特征

面向对象程序设计(Object-oriented programming,OOP)是种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。面向对象三大特征 —— 封装、继承、多态1 封装把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。关键字:public, protected, private。不写默认为 private。public成员:可以被任意实体访问protected成员:只允许被子类及本类的成员函数访问。

2024-01-16 11:14:32 374

原创 C++面试经典问题-explicit(显式)关键字

explicit 修饰构造函数时,可以防止隐式转换和复制初始化。explicit 修饰转换函数时,可以防止隐式转换,但。explicit(显式)关键字。

2024-01-16 11:10:57 355

原创 C++面试经典问题-Union联合

联合(union)是一种节省空间的特殊的类,一个 union 可以有多个数据成员,但是在任意时刻只有一个数据成员可以有值。当某个成员被赋值后其他成员变为未定义状态。匿名 union 不能包含 protected 成员或 private 成员。匿名 union 在定义所在作用域可直接访问 union 成员。全局匿名联合必须是静态(static)的。默认访问控制符为 public。不能继承自其他类,不能作为基类。可以含有构造函数、析构函数。不能含有引用类型的成员。

2024-01-16 11:08:50 394

原创 SEM优化三种方式

Refer:信息头,写网页的时候默认带的,可以得到知乎等媒体的用户来源,只能知道地址,不能跟踪具体点击。百益:图片广告,这些图片广告会出现在站长的网站上,比如小说的网站上,用户点击图片了就会从账户里扣钱。LinkTag:可以在投放的链接后面加上url,看流量是从哪个渠道来的。信息流:转化低,一般toB的不太用,不精准。如何评估不同渠道的流量带来的转化效果。大搜:关键词推广,投入产出比更好。百度搜索引擎优化的三种方式。百度搜索引擎优化的三种方式。通过数据库get方式、埋点。

2024-01-16 11:06:26 425

原创 产品运营--面试必会

发布的活动(活动方案、活动头图设计、运营的策略、奖励机制、开展活动的数据分析、带来的收益和影响)用户需求逻辑催生产品策略。拉新、留存、转化、传播。

2024-01-16 11:04:32 349

原创 struct 和 class区别

struct 作为数据结构的实现体,它默认的数据访问控制是 public 的,而 class 作为对象的实现体,它默认的成员变量访问控制是 private 的。总的来说,struct 更适合看成是一个数据结构的实现体,class 更适合看成是一个对象的实现体。默认的继承访问权限。struct 是 public 的,class 是 private 的。最本质的一个区别就是默认的访问控制。

2024-01-12 12:30:54 380

原创 struct 和 typedef struct在C和C++中的区别

C 中。

2024-01-12 12:28:46 398

原创 C++面试八股--inline函数

内联是在编译期建议编译器内联,而虚函数的多态性在运行期,编译器无法知道运行期调用哪个代码,因此虚函数表现为多态性时(运行期)不可以内联。在类中声明同时定义的成员函数,自动转化为内联函数,因此内联函数可以访问类的成员变量,宏定义则不能。内联函数相比宏函数来说,在代码展开时,会做安全检查或自动类型转换(同普通函数),而宏定义则不会。是否内联,程序员不可控。虚函数可以是内联函数,内联是可以修饰虚函数的,但是当虚函数表现多态性的时候不能内联。在类声明中定义的函数,除了虚函数的其他函数都会自动隐式地当成内联函数。

2024-01-12 11:43:58 505

原创 C++面试八股--static和this指针

当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。指针是一个隐含于每一个非静态成员函数中的特殊指针。指针所指向的这种对象是不可修改的(即不能对这种对象的数据成员进行赋值操作);,之后的函数调用不再进行初始化;指针,然后调用成员函数,每次成员函数存取数据成员时,都隐式使用。当对一个对象调用成员函数时,编译程序先将对象的地址赋给。的,而在文件外是不可见的,从而可以在。,使得该变量在静态存储区分配内存;在声明该变量的整个文件中都是可见的。在实现一些数据结构时,如。

2024-01-12 11:41:19 365

原创 C++面试问题---Const

1.const1.1 作用修饰变量,说明该变量不可以被改变;修饰指针,分为指向常量的指针(pointer to const)和自身是常量的指针(常量指针,const pointer);修饰引用,指向常量的引用(reference to const),用于形参类型,即避免了拷贝,又避免了函数对值的修改;修饰成员函数,说明该成员函数内不能修改成员变量。1.2 const 的指针与引用指针指向常量的指针(pointer to const)自身是常量的指针(常量指针,const pointer)

2024-01-12 11:38:53 509

原创 SQL--case语句

case语句,按从上到下的书写顺序计算每个WHEN子句的布尔表达式。返回第一个取值为TRUE的布尔表达式所对应的结果表达式的值。如果没有取值为TRUE的布尔表达式,则当指定了ELSE子句时,返回ELSE子句中指定的结果;如果没有指定ELSE子句,则返回NULL。现在运营想要将用户划分为25岁以下和25岁及以上两个年龄段,分别查看这两个年龄段用户数量。

2024-01-11 11:30:48 573

原创 数据分析SQL必备--窗口函数

2) 聚合函数,如sum. avg, count, max, min等,聚和窗口函数和上面提到的专用窗口函数用法完全相同,只需要把聚合函数写在窗口函数的位置即可,但是函数后面括号里面不能为空,需要指定聚合的列名。dense_rank函数:这个例子中是5位,5位,5位,6位,也就是如果有并列名次的行,不占用下一名次的位置。比如正常排名是1,2,3,4,但是现在前3名是并列的名次,结果是:1,1,1,2。比如正常排名是1,2,3,4,但是现在前3名是并列的名次,结果是:1,1,1,4。

2024-01-11 11:28:41 328

原创 SQL--数据分析必会篇

1.选取数据前几行oracle里用ROWNUM2.虚拟查询REGEXP或NOT REGEXP运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式3.正则表达式匹配的字符类:.:匹配任意单个字符。^:匹配字符串的开始。$:匹配字符串的结束。*:匹配零个或多个前面的元素。+:匹配一个或多个前面的元素。?:匹配零个或一个前面的元素。[abc]:匹配字符集中的任意一个字符。[^abc]:匹配除了字符集中的任意一个字符以外的字符。

2024-01-11 11:26:15 1582

原创 数据库SQL面经--第二弹

针对快照读(普通 select 语句),是通过 MVCC 方式解决了幻读,因为可重复读隔离级别下,事务执行过程中看到的数据,一直跟这个事务启动时看到的数据是一致的,即使中途有其他事务插入了一条数据,是查询不出来这条数据的,所以就很好了避免幻读问题。数据库中同时存在多个版本的数据,并不是整个数据库的多个版本,而是某一条记录的多个版本同时存在,在某个事务对其进行操作的时候,需要查看这一条记录的隐藏列事务版本id,比对事务id并根据事物隔离级别去判断读取哪个版本的数据。事务的执行是相互独立的,不会相互干扰。

2024-01-11 11:19:15 426 1

原创 数据库面经---10则

它是一段私有的SQL工作区,也就是一段内存区域,用于暂时存放受SQL语句影响的数据,简单来说,就是将受影响的数据暂时放到了一个内存区域的虚表当中,这个虚表就是游标。经常更新的字段不用创建索引,比如不要对电商项目的用户余额建立索引,因为索引字段频繁修改,由于要维护 B+Tree的有序性,那么就需要频繁的重建索引,这个过程是会影响数据库性能的。WHERE 条件,GROUP BY,ORDER BY 里用不到的字段,索引的价值是快速定位,如果起不到定位的字段通常是不需要创建索引的,因为索引是会占用物理空间的。

2024-01-11 11:16:44 642 1

原创 函数模板和类模板

通过使用函数模板,可以编写能够适用于不同类型的数据的函数,提高代码的重用性和灵活性。使用函数板的时候,可以直接调用它,编译器会根据传入的参数类型自动推导模板的具体类型。使用类模板时,可以根据需要显式地指定类型参数,也可以根据上下文的推断方式自动推导类型参数。一般可以,如果不行可以使用类型特定的函数或方法进行加法操作,即为 T 类型定义一个成员函数或者全局函数来实现加法操作。有一个函数模板,模板参数是T,假设是a和b,两个都是T类型的,是否能返回T类型的a+b,如果不能,需要做什么操作?

2024-01-11 11:12:57 319 1

原创 常见设计模式--通俗易懂版

一、设计模式原则一、设计模式原则1.单一职责原则核心:一个类只负责一个功能领域中相应的职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。思想:如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。单一职责原则注意事项和细节1) 降低类的复杂度,一个类只负责一项职责。2) 提高类的可读性,可维护性3) 降低变更引起的风险。

2024-01-10 11:34:20 1448

原创 面试常见知识点--树的遍历

前序遍历。

2024-01-10 11:20:44 469

原创 Excel办公--常见快捷指令

导言:Excel 是办公软件中最常用的表格处理软件之一。无论是在工作、学习还是日常生活中,我们都会经常使用 Excel 进行数据处理、统计分析等操作。而要想高效地使用 Excel,熟练掌握 Excel 的快捷指令和基础用法就成为了必修课程。本篇文章将详细介绍 Excel 的快捷指令和基础用法,帮助大家更好地应用 Excel。

2024-01-10 10:47:54 996

原创 面试常见的排序算法

堆排序一、各个排序算法的时间复杂度一、归并排序归并思想思想将两个有序的数组合并成一个有序的数组。第一步将数组进行分解,当分解成单个元素为一组的时候才是组内有序的。第二步将两两有序的数组进行合并,将两个有序数组合并成一个有序数组。重复第二步,直至排序完成。合并的步骤先申请两数组合并后那么大小的空间,然后将两个排好序的数组逐一进行比较,往申请空间里面放。递归前进:自己调用自己的语句递归回退return,通过递归结束条件进行回退在哪里调用的函数,函数的返回值就返回到哪里。

2024-01-10 10:40:46 469

原创 Pyecharts--常见动态图绘制

【代码】Pyecharts--常见动态图绘制。

2024-01-10 10:29:26 960

空空如也

空空如也

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

TA关注的人

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