自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode刷题二叉搜索树

找到后情况5种:没找到删除的点叶子节点,左空右空左不空,右空左空,右不空左不空,右不空。

2025-03-20 13:58:16 164

原创 leetcode刷题二叉树

【代码】leetcode刷题二叉树随记。

2025-03-11 18:30:12 921

原创 二叉树的基础操作(一)

2.出队,如果出队节点存在左右节点,则左右入队,打印根节点。2.沿着左边走到空的位置(记录指针入栈)3.回退(出栈)判断出战元素存在右边?后序非递归有点点难,没看懂后面再看看。1.定义一个移动指针指向根部。4.如果存在右边,重复2操作。1.定义一个移动指针指向根部。4.如果存在右边,重复2操作。先序遍历递归的思路创建二叉树。2.沿着左边走到空的位置(1.根节点入队,遍历根节点。)判断出战元素存在右边?

2025-03-07 15:08:57 1048

原创 【项目部署】反向代理部署遇到的问题

本文记录录一下厂里项目部署遇到的问题

2025-03-04 13:40:18 1024

原创 Oracle的数据库链路dblink(五)

数据库链路(database link),简称dblink,它是一个通道,本地数据库与远程数据库之间的通道,通过dblink,在本地数据库中可以直接访问远程数据库的对象。dblink不是应用程序与数据库之间的通道,而是数据库之间的通道。

2025-01-05 14:22:00 997

原创 Oracle的学习(四)

是一个查看数据的窗口,是查询语句模板,视图本身没有数据,在数据库中只保存了视图的定义。

2025-01-03 16:43:11 640

原创 Oracle的权限(三)

在安装数据库的服务器上,用dba身份登录数据库。创建用户的命令是create user,它的选项非常多,在这里我介绍一些常用的选项。参数说明:create user 用户名 identified by 密码:指定登录数据库的用户名和密码。[default tablespace 表空间名]:指定用户的永久表空间,该用户全部的数据库对象(表、索引)将存放在该表空间中。

2024-12-29 10:47:28 878

原创 Oracle的表空间(二)

用DBA登录数据库,执行以下SQL可以查看数据库全部的表空间。示例:1)创建数据表空间DATA,同时创建数据文件/oracle/base/oradata/snorcl11g/data01.dbf,数据文件的大小是128M。2)创建索引表空间INDEXS,同时创建数据文件/oracle/base/oradata/snorcl11g/indexs01.dbf,数据文件的大小是128M。

2024-12-27 10:06:18 825

原创 Oracle的学习(一)

查看当前登录用户select user from dual;获取日期select to_char(sysdate,'yyyymmddhh24miss') from dual;获取序列(sequence)生成器的值。

2024-12-26 13:00:30 1181

原创 conda一些命令

conda search cuda 或 conda search cudatoolkit -c conda-forge。输入python在输入import tensorflow as tf 提示numpy版本不对。conda install cudatoolkit=11.3 建议执行一下。conda install cudnn=8.2 建议执行一下。查看cudnn和cuda可安装版本。

2024-11-26 08:07:58 897

原创 【单例模式2】饿汉式单例的线程安全

就是将饿汉式单例的实例对象定义为指针。

2024-11-20 07:53:39 1197 1

原创 【单例模式1】饿汉式单例模式

饿汉式单例模式:还没有获取实例对象,实例对象就已经产生了。一定是线程安全的。懒汉式单例模式:需要用的时候再构造实例。应用场景:比如日志模块,数据库模块,开发的解析器模块。

2024-11-20 07:53:03 872

原创 实现自定义智能指针 - CSmartPtr

线程同步。

2024-11-11 08:02:43 1151

原创 【智能指针】自定义删除器

这么就实现了对资源的自定义管理,那么有个缺点:自定义的删除器我们只是用了一次后面再也不用,那么写了两个仿函数太占位置!可以利用Lambda函数和function包装器在初始化的时候就写好删除器。fclose(p);return 0;这样只用在初始化智能指针的时候定义删除器就可以了,代码更加简洁!

2024-11-09 01:09:40 1101

原创 【行为型模式】观察者模式

首先创建一个基类VideoSite,代表要访问的网站。/*代理Proxy模式:通过代理类,来控制实际对象的访问权限客户 助理Proxy 老板 委托类*/class VideoSite // #1 抽象类public:// 免费电影// VIP电影// 用券观看电影首先创建一个基类WebAddr,代表要访问的网站。public://执行访问网站的动作,子类中重新实现virtual ~WebAddr() {} //做父类时析构函数应该为虚函数。

2024-11-08 11:50:25 824

原创 【设计模式】工厂模式

把对象的创建封装在一个接口函数里面,通过传入不同的标识,返回创建的对象。客户不用自己负责new对象,不用了解对象创建的详细过程把有关联关系的,属于一个产品簇的所有产品创建的接口函数,放在一个抽象工厂里面AbstractFactory,派生类(具体产品的工厂)应该负责创建该产品簇里面所有的产品。假如一类工厂如宝马工厂多做了一项业务如轮胎,那么就得在抽象工厂里面增加一个创建轮胎的产品接口(纯虚函数),所有的工厂都得重写该接口,否则都成了抽象类...

2024-11-06 08:07:40 884

原创 function与bind1st的底层实现原理

通过实现myfunction类,我们可以模拟的基本功能,存储和调用任意类型的可调用对象。myfunction类使用模板和函数指针来实现这一功能,提供了一个简单而有效的解决方案。

2024-11-02 13:47:54 1228

原创 【网络代理模块】反向代理(下)实现

内网模块向外网模块发起TCP连接,建立一条传输通道,同时内网模块连接192.168.1.4 22,整个链路就建立起来了。用户1连接了外网服务器的5122端口,外网模块通过命令通道告诉内网模块帮我连192.168.168.1.4的22端口;服务程序启动的时候,内网模块向外网模块发起一个TCP连接,建立一条传输通道(称为命令通道);之后外网模块读取路由参数配置文件,外网模块需要监听5122,5123,5128三个端口;

2024-10-29 08:53:39 943

原创 【网络代理模块】反向代理(上)

反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。

2024-10-25 13:59:20 1147

原创 生产者消费者模型(多线程版本)

线程同步。

2024-10-24 18:03:36 1202

原创 分包与粘包

tcp接收到数据之后,有序放在接收缓冲区中,数据之间不存在分隔符的说法,如果接收方没有及时的从缓冲区中取走数据看上去就象粘在了一起。tcp报文的大小缺省是1460 字节,如果发送缓冲区中的数据超过1460字节,tcp将拆分成多个包发送,如果接收方及时的从接收缓冲区中取走了数据,看上去像就接收到了多个报文。采用固定长度的报文。即发送端固定发送30B,接收端固定接收30B,就不会粘包和分包。在报文前面加上报文长度。报文头部(4字节的整数)+报文内容。

2024-10-15 10:15:37 558

原创 【网络代理模块】正向代理(下)

本文对正向代理模块进行优化:比如加入定时器定期处理空闲tcp连接,设计代理模块的缓冲区buffer

2024-10-11 11:29:36 534

原创 【网络代理模块】正向代理(上)

本文介绍正向代理的概念和特点,以及正向代理功能的代码实现。

2024-10-11 11:15:04 533

原创 【I/O多路复用】水平触发&边缘触发

LT 模式是 epoll 的默认模式。在 LT 模式下,当某个文件描述符就绪时,epoll_wait 函数会立即返回,通知应用程序有事件发生。即使应用程序没有立即处理完这些事件,下次调用 epoll_wait 时仍会再次返回这些就绪的文件描述符。

2024-10-10 16:56:26 1002

原创 【I/O多路复用】阻塞&非阻塞I/O

总结:非阻塞情况下,要配合循环使用。阻塞:在进/线程中,发起一个调用时,在调用返回之前,进/线程会被阻塞等待,等待中的进/线让出CPU的使用权。非阻塞:在进/线程中,发起一个调用时,会立即返回。会阻塞的四个函数:connect()、accept()、send()、recv()。connect函数看起好像不会阻塞,但是会经历三次握手是阻塞的,如果connect一个不存在的地址,10s后会返回失败,说明是阻塞的。在传统的网络服务端程序中(每连接每线/进程),采用阻塞IO。

2024-10-10 16:43:10 577

原创 【I/O多路复用技术】select与poll的原理与使用

介绍了select和poll原理与使用

2024-10-09 15:38:38 1277

原创 FTP服务原理及使用

本文介绍了FTP服务原理概念以及基本操作。

2024-10-03 20:42:23 2870 1

原创 【服务程序的运行策略】——守护进程

本文介绍守护进程的目的与实现,以及学习过程中实现功能时候的一些细节。

2024-10-02 16:46:16 618

原创 【服务程序的运行策略】——心跳进程

本文先介绍进程的心跳,从原理上实现基于共享内存的心跳进程。

2024-10-02 15:37:07 1020

原创 【服务程序的运行策略】——调度程序

本文介绍服务成的周期性调度,即让程序按照周期运行。如果是常驻内存的服务程序,当该服务程序正常/异常终止后,在一个周期后再次启动。保证了服务程序的周期运行。

2024-10-02 13:50:31 430

原创 生产者消费者模型(多进程版本)

生产者消费者模型有两种版本:多进程版本和多线程版本。一.多进程版本多进程的生产消费者模型要基于信号量实现进程同步,并且是基于共享内存的循环队列实现的。

2024-09-30 17:34:14 991

原创 【Linux工具】gdb调试操作

如果程序在运行的过程中发生了内存泄漏,会被内核强行终止,提示“段错误(吐核)”,内存的状态将保存在core文件中,方便程序员进一步分析。此时,运行的进程会停止,等待调试,调试方式与上面一样,可以bt查看函数调用栈,可以p可以n等等。如果希望程序可调试,编译时需要加-g选项,并且,不能使用-O的优化选项。注意:在gdb中,用上下光标键可以选择执行过的gdb命令。Linux缺省不会生成core文件,需要修改系统参数。

2024-09-30 17:03:25 429

原创 InnoDB引擎

本文介绍了InnoDB引擎的架构,事务原理和MVCC等。

2024-09-20 11:09:34 1141

原创 MySQL锁

本文介绍了MySQL锁的概念,包括全局锁,表级锁和行级锁等相关知识。

2024-09-19 18:03:50 1265

原创 SQL优化方法

本文介绍了SQL语句的优化方法,包括insert语句优化,order by优化,group by优化等等,主要从使用索引的角度介绍优化方法。

2024-09-14 19:04:12 1660

原创 MySQL索引

本文介绍了索引有关知识,包括了索引的底层,索引的性能分析,索引的使用,索引的设计原则等等。

2024-09-14 18:55:40 3219

原创 MySQL入门篇

介绍mysql最最基本用法,包括增删改查,多表查询,约束,事务等,后续继续更新。

2024-09-12 17:08:50 1631

原创 Git常用命令与基本操作(包括搭建git环境)

git checkout -- 在git add之前,把工作区的代码用版本库中的代码覆盖掉,注意命令中的--不能 去掉,否则成切换分支的命令了。创建本地分支并指定追踪哪个远程分支:git checkout -b <本地分支名> <远程仓库名>/<远程分支 名>设置已经存在的本地分支追踪哪个远程分支:git branch -u <远程仓库名>/<远程分支名>本地分支推送到远程分支:git push <远程仓库名> <本地分支名>:<远程分支名>git push -f 强制推送本地仓库代码到远程仓库。

2024-09-11 18:45:47 1103 1

原创 安装MySql没有“developer default”选项问题解决

然后,从regedit编辑器中的MySQL文件夹中删除所有文件。要从Windows计算机中删除MySQL Workbench和Server,您需要执行以下4个步骤(没有例外)。这种情况是第二次安装或者卸载没有处理干净出现,按照上述操作一遍,操作完第三个步骤,应该就会出来“Developer Default”选项了。删除驱动器C:/ProgramData/MySQL中的所有文件(该文件夹可能隐藏在您的计算机上)。卸载MySQL从开始菜单/防火墙/允许一个应用程序通过Windows防火墙(如果有)。

2024-09-10 14:58:26 4996 6

原创 可调用对象的绑定器(function)和包装器(bind)

包装器和绑定器。

2024-09-10 11:20:52 592

空空如也

空空如也

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

TA关注的人

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