自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 九月秋招总结

百度:9-6一面,9-14二面,9-18三面,offer评估中。美团:9-20一面,9-25二面,9-27三面,等待hr面。月之暗面:9-11一面,9-13二面,offer北京。荣耀:9-25一面,9-28二面,offer决策中。联咏:9-6一面,9-21hr面,offer评估中。滴滴:9-19 速通一二三面,外卖方向没有HC了。经纬恒润:9-3一面,9-5二面,offer北京。陕飞:9-19一面,offer汉中。TCL:约9-28不合适,推了。天码智控:9-26一面,二面。vivo:9-23一面。

2024-09-30 16:51:09 309 1

原创 《Hadoop大数据技术与实践》+ 数仓版本

数据规模巨大(Volume)生成和处理速度极快(Velocity)数据类型多样(Variety)价值巨大但密度较低(Value)

2024-08-14 20:41:13 1169

原创 读书笔记 - 《Redis 深度历险:核心原理与应用实践》

不过你也不必过于担心,因为 Redis 对 HyperLogLog 的存储进行了优化,在计数比较小时,它的存储空间采用稀疏矩阵存储,空间占用很小,仅仅在计数慢慢变大、稀疏矩阵占用空间渐渐超过了阎值时,才会一次性转变成稠密矩阵,才会占用 12KB的空间。数据段是由很多操作系统的页面组合而成,当父进程对其中一个页面的数据进行修改时,会将被共享的页面复制一份分离出来,然后对这个复制的页面进行修改,每个页面的大小只有 4KB。用户看到错误对话框后,会先阅读对话框的内容,再点击重试,这样就可以起到人工延时的效果。

2024-07-17 17:18:59 1317

原创 读书笔记 - 《深入浅出MySQL(第3版)》

隔离性Isolation:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致,因为多个事务同时使用相同的数据时,不会相互干扰,每个事务都有一个完整的数据空间,对其他并发事务是隔离的。MySQLInnoDB引擎的行锁是通过索引加载的,也就是说,行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表锁,此时其它事务无法对当前表进行更新或插入操作。简而言之,第一范式就是无重复的列。

2024-06-26 11:12:53 1266

原创 Redis大key问题

比如用String类型的Key存放大体积二进制文件型数据用List数据结构保存热点新闻的评论列表,因为评论数爆发增长导致存放的元素多,value过大。用redis-cli加上–bigkeys参数,可以找到某个实例的大key。要解决Big Key问题,无非就是减小key对应的value值的大小。

2024-05-09 20:50:14 306

原创 内存泄漏检测

代码量比较少的情况,可以自己写malloc和free函数,然后用宏定义来替换,自己的malloc和free函数里就分别记录每次分配和释放内存时内存大小和位置记录。模仿shared_ptr维护一个引用数,在程序结束时如果引用计数表不为空,则打印出存在内存泄漏的相关信息。如果有内存泄漏的话,它就会提示堆溢出问题什么的,会定位到文件里的具体行数。,显示有内存泄漏错误,定位到具体行数。生成test可执行文件后直接。安装valgrind后,使用。

2024-04-02 23:55:08 243

原创 HTTPS、对称/非对称加密、SSL/TLS

HTTPS并不是一个单独的协议,是在 TCP 和 HTTP 之间加入了 SSL/TLS 安全协议,使得报文能够加密传输,SSL是TLS的前身,现在使用的大多都是TLS。

2024-04-02 22:20:10 8857

原创 TopK问题解决方案

在BFPTR算法中,仅仅是改变了快速排序Partion中的pivot值的选取,在快速排序中,我们始终选择第一个元素或者最后一个元素作为pivot。而在BFPTR算法中,每次选择五分中位数的中位数作为pivot,这样做的目的就是使得划分比较合理,从而避免了最坏情况的发生。:维护K个元素的最大堆,每次和堆顶元素比较,然后堆化,时间复杂度为O(nlogK),时间复杂度比方案1好,毕竟K一般是远远小于n的。(2)将比这个数大的数全部放到它的右边,把小于或者等于它的数全部放到它的左边。一趟快速排序的过程如下。

2024-04-01 23:00:37 8462

原创 多级缓存、OpenResty缓存、Redis分布式缓存、进程缓存

布隆过滤器其实采用的是哈希思想来解决这个问题,通过一个庞大的二进制数组,走哈希思想去判断当前这个要查询的这个数据是否存在,如果布隆过滤器判断存在,则放行,这个请求会去访问redis,哪怕此时redis中的数据过期了,但是数据库中一定存在这个数据,在数据库中查询出来这个数据后,再将其放入到redis中,假设布隆过滤器判断这个数据不存在,则直接返回。可以看到【缓存命中0,错过1,最大缓存数10,已缓存数1】,这个错过1就是我们刚发的这个请求,请求来了但是进程缓存里没有这个key,只能往下去数据库查询。

2024-01-04 21:36:56 9526

原创 cmu15-445课程笔记

总结起来,cmake …用于配置并生成构建文件,而 make 用于实际执行构建,根据构建文件中的规则进行编译和链接。cmake:将 CMakeLists.txt 文件中的配置指令解析为适用于所选构建系统的构建文件。接下来我们可以在本机的编译器编写我们的代码。然后在服务器上编译和运行我们的代码。make: 在生成了构建文件后,编译项目的源代码并生成最终的可执行文件。1、下载安装Clion,安装C++编译环境。2、服务器装依赖包,安装Cmake。Clion远程连接服务器。

2023-08-23 19:22:46 14767

原创 《redis设计原理/redis设计与实现》

Redis 是一种基于内存的数据库,它对数据的读写操作都是在内存中完成,所以它的读写速度非常快,常用于缓存,消息队列这些场景。Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、Hash(哈希)、 List (列表)、Set(集合)、Zset(有序集合)、Bitmaps(位图)等等,并且对数据类型的操作都是原子性的,因为执行命令由单线程负责的,不存在并发竞争的问题。除此之外,Redis 还支持事务 、持久化、过期删除机制等等。

2023-08-20 11:35:09 10795

原创 网络是怎样连接的

除此之外,互联网里还有一个根域,它里面保存着com、jp等DNS服务器的信息,互联网里所有DNS服务器里都保存着根域服务器的信息。当我们的浏览器调用DNS解析器时,解析器生成一条[告诉我www.baidu.com的IP地址]这种消息,因为解析器不具备使用网络收发数据的功能,所以它会把这条信息委托给操作系统的协议栈来执行,协议栈是操作系统内部的网络控制软件,协议栈就会通过网卡把消息发送给最近的DNS服务器,DNS服务器的IP地址已经是提前设置好的,不用再去查询了,DNS服务器查到之后就会返回具体的IP地址。

2023-07-22 17:30:36 8330

原创 【操作系统】读书笔记

线程又叫轻量级进程,它从属于进程,是程序的实际执行者,一个进程可以包含多个线程,它是CPU调度的最小单位。首先我们都知道,现代的计算机软件都是基于操作系统来运行的,操作系统封装了计算机底层的硬件资源,比如磁盘、键盘、显示器等等,那当我们的应用程序想要访问使用这些计算机资源的时候,就需要调用操作系统提供的服务。如果有的员工在上班时临时空闲,比如等待机器启动什么的,现在没有事情,那么可以让这名工人利用这个时间去做其它的事情,也如果一个线程等待某些条件,可以充分利用这个时间去做其它事情,那这就是协程。

2023-07-03 14:59:42 10747

原创 《计算机是怎样跑起来的》

如果仅仅把技术当作一个黑盒,只把时间花在学习其表面上,而并没有探索到其本质,就绝不应该认为自己已经"懂"了。带着问题阅读正文的内容。

2023-05-30 16:27:48 15830

原创 【STL】

STL(Standard Template Library),即标准模板库,它在1994年被正式纳入C++标准,是 C++ 标准库的重要组成部分。它不仅仅是一个可复用的组件库,而且是一个包含了许多在计算机科学领域里常用的基本数据结构和基本算法的软件框架。

2023-05-18 16:48:58 8933

原创 【机器管理】

【代码】【机器管理】

2023-04-12 09:41:56 859

原创 笔记《C++ primer 5th》

C++ primer 5th笔记

2022-11-26 10:37:13 1424

原创 switch case 跨越变量的初始化报错

在 C++ 里,switch 语句不允许 case 标签跨越变量的初始化语句,这是因为如果 switch 跳转到了初始化语句之后的 case 标签,那么初始化语句就会被跳过,这可能会导致未初始化的变量被使用,从而引发未定义行为。:添加代码块(使用花括号 {})来限制变量的作用域,确保每个 case 标签不会跨越变量的初始化。

2025-02-18 14:36:12 150

原创 段错误 (核心已转储)

*问题原因:**没有对 Addressbooks 结构体中的 m_Size 成员进行初始化。由于未初始化,m_Size 的值是一个随机的垃圾值,当使用这个随机值作为数组索引时,就可能会访问到未分配的内存区域,从而导致段错误。

2025-02-17 18:21:26 219

原创 SQL执行流程、SQL执行计划、SQL优化

返回两个表中的匹配行。返回左表中的所有记录以及右表中的匹配记录。返回右表中的所有记录以及左表中的匹配记录。返回左侧或右侧表中有匹配的所有记录。

2024-07-19 17:34:15 706

原创 《DDIA-数据密集型应用系统设计》

对于一个应用系统,如果“数据”是其成败决定性因素,包括数据的规模 、 数据的复杂度或者数据产生与变化的速率等,我们就可以称为“数据密集型应用系统”;知其然,知其所以然当出现意外情况如硬件、软件故障、人为失误等,系统应可以继续正常运转:虽然性能可能有所降低,但确保功能正确。随着规模的增长 ,例如数据量 、流量或复杂性,系统应以合理的方式来匹配这种增长。随着时间的推移,许多新的人员参与到系统开发和运维, 以维护现有功能或适配新场景等,系统都应高效运转。

2024-07-18 17:29:14 836

原创 贪心算法理解

我们先看一个例子假设有一个可以容纳100kg物品的背包,背包可以装各种物品,我们有以下五种豆子,每种豆子的重量和总价值各不相同。为了让背包中所装物品的总价值最大,我们如何选择在背包中装哪些豆子?每种豆子又应该装多少?我们可以这样想,我们只需要计算出每种豆子的单价,按照价格由高到低依次来装豆子,先按单价最高的豆子装,装不满的话,再装价格相对较低的豆子,直到装满为止。:针对一组数据,事先定义了限制值和期望值,希望从中选择几个数据,在满足限制的情况下,期望值最大。

2024-07-17 17:33:06 823

原创 IO多路复用技术、select、poll、epoll联系与区别

epoll 是 Linux 内核提供的一种高效的 I/O 多路复用技术,用于监控大量文件描述符(file descriptors)的 I/O 事件。epoll是Linux下的一种高效的I/O多路复用技术。epoll_ctl:用于添加(EPOLL_CTL_ADD)、修改(EPOLL_CTL_MOD)或删除(EPOLL_CTL_DEL)感兴趣的文件描述符。异步的:epoll 允许应用程序先注册对特定的 I/O 事件,当这些事件发生之后操作系统会自动通知应用程序,这是异步 I/O 的一个关键特征。

2024-07-15 10:48:03 1075

原创 读书笔记《C++ Primer Plus第五版》

连续分段空间,由一段一段的连续空间构成的,用一小块连续的内存空间map作为主控(不是STL的map容器),里面的每一个元素都是一个指针,指向另一段连续性内存空间,称作缓冲区,默认使用 512 字节大小。假设我们定义一个双向链表,把链表上节点都定义成shared_ptr智能指针,当其中两个节点互相引用的时候,就会出现循环引用的现象。堆是我们通过new关键字来动态申请的内存空间,堆上分配的内存需要我们手动管理,堆是不连续的内存区域,以链表的形式分配的,如果我们没有正确释放堆上的内存可能会出现内存泄漏。

2024-06-26 10:50:11 1040

原创 【项目】web服务器

socket 套接字:所谓 socket(套接字),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象,一个套接字就是网络上进程通信的一端,是应用程序通过网络协议进行通信的接口。socket 可以看成是两个网络应用程序进行通信时,各自通信连接中逻辑上的端点,是网络环境中进程间通信的一套 API。大端字节序是指一个整数的最高位字节存储在内存的低地址处,低位字节存储在内存的高地址处;小端字节序则是指整数的高位字节存储在内存的高地址处,而低位字节则存储在内存的低地址处。

2023-10-02 18:37:44 234

原创 【MySQL】阅读笔记

我们常说的索引数据结构,就是由存储引擎层实现的,不同的存储引擎支持的索引类型也不相同,比如 InnoDB 支持索引类型是 B+树 ,且是默认使用,也就是说在数据表中创建的主键索引和二级索引默认使用的是 B+ 树索引。之所以要逆序,是因为记录头信息中指向下一个记录的指针,指向的是下一条记录的「记录头信息」和「真实数据」之间的位置,这样的好处是向左读就是记录头信息,向右读就是真实数据,比较方便。但其实对于更新比较频繁的表,查询缓存的命中率很低的,因为只要一个表有更新操作,那么这个表的查询缓存就会被清空。

2023-08-08 14:56:49 8353

原创 【计算机网络】笔记

它的主要功能是在数据链路层提供的数据帧传送功能上,控制数据链路层和传输层之间的信息转发,然后建立、维护网络的连接,把数据从源端经过若干个中间节点安全传送到目的端,从而向传输层提供最基本的端到端的数据传输服务。传输层主要起承上启下的作用,它向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输,同时向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。表示层是OSI模型的第六层,它的主要功能是充当应用程序和网络之间的翻译角色,它要处理用户信息的表示问题,如数据的编码、数据格式转换、加密解密等问题。

2023-07-22 11:20:43 10917

原创 【C++】(五)11新特性

所以在刚才的例子里,我们可以用weak_ptr声明链表节点的pre和next两个指针,那么节点在指向前一个或后一个节点后并且不会改变shared_ptr的引用计数,当node1计数为0时,node1指向的空间就会被销毁掉。auto是C++11新增的一个关键字,auto也叫类型说明符,它可以让编译器替我们去分析表达式所属的类型,它仅仅是一个占位符,在编译期间它会进行类型推导,然后被真正的类型所替代。我们需要一个指针对象,需要一个引用计数的指针设定对象的值,并将引用计数计为1,需要一个构造函数。

2023-07-02 17:42:37 330

原创 【C++】(四)内存状态

实际上每个元素在放的时候都是有一个偏移量的,第一个元素的偏移量是0,其他元素的偏移量是对齐数的整数倍(那么所谓这个对齐数,指的是当前元素大小和当前编译器默认对齐数,它们两个之间的最小值),偏移了之后就开始放元素,当元素都放完之后,还需要看一下当前总的存储单元是不是这些元素中最大对齐数的整数倍,如果不是的话需要补成整数倍,也就是后面会空几个位置。我们都知道在内存中放数据之后CPU会来读取,但是CPU从内存中读取数据的时候并不是一个字节一个字节来读,而是以块儿的形式来读的,这个块儿的大小是内存的读取粒度。

2023-07-02 17:34:42 8297

原创 【C++】(三)STL

STL(Standard Template Library),即标准模板库。它是94年被正式纳入C++标准,是 C++ 标准库的重要组成部分。它不仅仅是一个可复用的组件库,而且是一个包含了许多常用的数据结构和算法的软件框架。STL的第一个比较重要的特点是数据结构和算法的分离。STL构成STL提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。首先vector的扩容原理是申请新空间,拷贝元素,释放旧空间。

2023-07-02 17:27:26 10717

原创 【C++】(二)函数、类、模板

继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类, 新的类能吸收已有类的数据属性和行为,并能扩展新的能力。继承缺点:耦合度高,因为继承了父类的东西,所以想分开就很难了,藕断必定丝连。增减的代码维护难度,尤其是多重继承和兄弟关系继承,毕竟家族历史长派生类中包含并且可以使用它从基类继承而来的成员,为了使用这些成员,派生类必须知道他们是什么。所以必须定义而非声明。模板是c++的一种特性,它可以让类或者函数在对应不同的类型的时候正常工作,而不用为每一种类型分别写一份代码。

2023-07-02 17:26:04 10744

原创 【C++】(一)基础语法

实际上每个元素在放的时候都是有一个偏移量的,第一个元素的偏移量是0,其他元素的偏移量是对齐数的整数倍(所谓对齐数是当前这个元素大小和当前编译器默认对齐数,它们两个之间的最小值),而且存放元素完成之后,还需要看一下当前总的存储单元是不是这些元素中最大对齐数的整数倍,如果不是的话需要补成整数倍,也就是后面会空几个位置。我们都知道在内存中放数据之后CPU会来读取,但是CPU从内存中读取数据的时候并不是一个字节一个字节来读,而是一块一块来读的,这个块的大小叫做内存的读取粒度。那这就是结构体的内存对齐。

2023-06-01 17:10:19 8659

原创 机器常用操作

打开Anaconda Prompt。

2023-04-10 11:26:15 1894 1

原创 pip install

pip

2023-03-24 20:03:32 151

原创 集成activiti步骤

集成工作流

2022-06-15 16:21:55 4040 1

原创 OCR处理步骤

什么是人工智能、机器学习和深度学习?首先人工智能的英文是ArtificialIntelligence也就是常说AI,它是一个比较宽泛的概念,是研发用于模拟和扩展人类智能的理论和方法技术的一门新学科。因为这个定义只阐述了目标,而没有限定具体的实现方法,因此要实现人工智能的话就存在很多方法和分支。然后是机器学习,机器学习是现在比较有效的一种实现人工智能的方式,它是专门研究计算机怎样模拟和实现人类的学习行为,以此来获取新的知识技能,然后不断改善自身的性能这样的一种方法。机器学习的实现一般是分成两步先训练再预

2022-03-06 15:53:23 1589

原创 端口被占用

1. 找出是哪个进程占用端口netstat -ano | findstr 端口号2. 杀死进程任务管理器 -> 详细信息 -> 找出对应PID结束或taskkill -PID 进程号 -F

2022-02-17 12:00:34 11358

转载 partition by

转载地址:https://blog.youkuaiyun.com/dwt1415403329/article/details/878353831>建表并插入数据,因为over是开窗函数,mysql不支持开窗函数,其他如oracle,sql server,db2...等新版本都支持(这里借用他人的数据) CREATE TABLE Employee( ID number(10) not null primary key, EmpName varchar(20), EmpSalary varchar(10)

2020-10-14 10:58:48 17584

原创 request.getParameter(“参名”) 中文乱码解决方法

原:String groupName = getRequest().getParameter("groupName"); 新:String groupName = StringUtils.isEmpty(getRequest().getParameter("groupName")) ? "" : new String(getRequest().getParameter("groupName").getBytes("iso-8859-1"), "utf-8"); 分析:原因:Http请求传输.

2020-10-09 12:06:34 3901

原创 windows安装RabbitMQ的坑

装了好久的RabbitMQ,一直有问题。现在终于已经好了。来总结一下遇到的坑首先,安装Rabbit时,计算机主机名是不能为汉语的,我开始就一直犯了这个坑,我以为我的主机名不是汉字。两个方法鉴别是否为汉字 1.看到后缀就知道了。2.看文件名,如果是汉字,解决方法:打开注册表regedit搜ProfileList改了之后直接重启,再进入电脑时 会显示为电脑初始状态,进user目录,直接把以前的汉字主机名改为上图中你自己填的英文 重启BINGO第二个坑,erLang和RabbitMQ的版本

2020-09-28 23:45:06 11599

空空如也

空空如也

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

TA关注的人

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