自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 LevelDB学习笔记:写入流程

文章目录大致写入流程为大致写入流程为

2021-11-07 19:40:08 527

原创 【高性能MySQL】读书杂记:架构

文章目录MySQL逻辑架构连接管理并发控制读写锁锁粒度事务隔离级别MySQL逻辑架构图来自这里第一层并不是MySQL独有的,大多数C/S架构的工具和服务都有,进行连接处理,授权认证,安全等第二层,服务器层。大多数MySQL的核心功能都在这一层,包括查询解析、分析、优化、缓存以及所有内置函数,所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等第三层,存储引擎。负责数据的存储和提取,存储引擎提供API于上层服务器,这些接口屏蔽了不同存储引擎之间的差异,用于执行:“开启事务”、“根据

2020-10-04 16:29:06 346

原创 【高性能MySQL】读书杂记:创建高性能的索引

文章目录索引的优点索引是最好的解决方案么?MySQL中,索引是存储在引擎层而不是服务器层实现的。B-Tree索引,它使用B-Tree数据结构来存储数据。而MySQL的B-Tree索引虽然名字是BTree,但是InnoDB使用的是B+Tree数据结构实现的。索引的优点索引大大减少了服务器需要扫描的数据量索引可以帮助服务器避免排序和临时表索引可以将随机I/O变为顺序I/O索引是最好的解决方案么?索引并不总是最好的解决方案。只有当索引帮助存储引擎快速查找到记录带来的好处大于其额外的工作

2020-10-04 16:28:53 1798 5

原创 MySQL问题合集

文章目录索引失效的情况索引失效的情况此段来自即上述的隐式类型转换导致索引失效;错误的例子:select * from test where t_table=12345;正确的例子:select * from test where t_table='12345';什么是隐式转换MySQL在进行字段对比时,如果两个参数类型不一致,此时便会进行类型转换。让他们可以进行比较。你可以在sql中进行显示转换,或者在执行时自动进行隐式转换(应该避免,效率低且容易出错)总之以后sql语句的

2020-09-13 15:33:02 196

原创 ubuntu云服务器编译过程中链接异常

无论gcc还是g++都显示有以下段错误,无法成功链接collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumpedcompilation terminated.在stackoverflow中找到一个Q&A解决。特此记录依次执行了以下命令后可以重新正常编译链接。sudo apt purge binutilssudo apt remove makesudo apt autorem

2020-05-22 16:28:52 1029 5

原创 C/C++ 栈帧笔记

原创链接非原创, 有删改,仅做个人笔记1.我们在调用它的时候系统做了什么?2.main函数中如果还有另一个函数,在跳转后运行完这个函数时,编译器怎么知道下一行执行哪个语句呢?会不会又从头执行了?3.函数在结束之后(运行到反花括号“}”处),系统又是怎么处理的?4.不同的语言对函数形参内存的处理都是一样的吗?5.函数的返回值有哪些类型?都是怎么从函数中返回回来的呢?示例代码:#...

2020-04-21 21:06:13 1179

原创 python学习笔记五:并发

文章目录多线程threading模块属性和方法创建线程互斥锁条件变量Queue多线程python提供了thread、threading和Queue模块来支持多线程编程thread只支持基本的功能,不推荐使用,threading是更加全面,更高级别的模块,使用Queue可以创建一个队列数据结构,用于在多线程之间进行共享threading模块对象描述Thread表...

2020-03-29 20:08:32 225

原创 python学习笔记四:pymysql操作mysql

文章目录建立连接检查连接状况批量插入查询SQL结果写入文件设置游标类型SQL注入建立连接INSERT、UPDATE、DELETE 等修改数据的语句需手动执行commit()完成对数据修改的提交import pymysql db = pymysql.connect(host = "localhost", port = 3306, ...

2020-03-27 17:41:31 326

原创 使用hadoop C接口编写代码错误集合

编译:g++ hello_world.cpp -I${HADOOP_HOME}/include -L${HADOOP_HOME}/lib/native -lhdfs -L${JAVA_HOME}/lib/server -ljvm最终运行Java程序,所以不仅需要hdfs的动态库,还需要jvm的库我安装的是openjdk11,11之后的版本取消了jre目录,重新整改了目录结构运行报错无法挂载...

2020-03-06 17:59:03 387

原创 云服务器搭建hadoop,win下web界面无法访问

解决办法:首先core-site.xml中的:<property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> <property> <name>fs....

2020-03-05 22:12:44 794

原创 python学习笔记三:面向对象

文章目录定义一个类updating定义一个类class Person: '''这是文档字符串''' phone = None #这是类变量 def __init__(self, name, age = 20): self.name = name #成员变量 self.age = age def show(self):...

2020-02-11 22:36:53 132

原创 python学习笔记二:时间&文件目录操作

文章目录时间的处理文件时间的处理时间戳import time ticks = time.time() 当地时间# 获取当地时间# 返回的是一个时间元组local_time = time.localtime()print local_time输出为:time.struct_time(tm_year=2020, tm_mon=2, tm_mday=5, tm_ho...

2020-02-07 21:00:39 178

原创 python学习笔记一: 数据类型

好久没写过博客了, 实际上是好久没好好学习过了, 实习回来一直在玩耍…python2和python3不兼容, 现在python也在朝着python3发展, 但是我也是刚开始学习python, 而且还有很多第三方库仍然支持Python2, 打算先看一下python2, 再继续学习python3这篇博客都是一些python的基础语法文章目录IO数据类型IOprint和raw_inpu...

2020-01-30 16:44:28 261

原创 Ubuntu18.04安装过程出现的问题

换了个新电脑, 是NVIDIA的显卡,然后安装了Ubuntu18.04, 结果出现了一些问题, 通过所搜索引擎的帮助… 总算是解决了写篇博客记录一下, 以下的方法都是通过别人的博客学到的, 并不是原创, 不过因为很多时候要重启电脑, 而且也不是同一天解决的, 所以找不到原创的博客链接了文章目录无法进入系统卡在logo界面屏幕分辨率无法调节,只有800的选项无法调节屏幕亮度无法进入系统卡在...

2020-01-15 21:55:44 602

原创 shell脚本学习总结及坑点记录

文章目录shell 变量预定义变量环境变量shell 常用关键字let命令case语句解析命令行参数工具调用main函数获得执行脚本的当前绝对路径cut命令test 命令数值测试字符串测试文件测试(),(()),[],[[]],{}()(())[][[]]{}循环for 循环while 循环函数函数传参字典数组shell脚本是一种为 shell 编写的脚本程序, 一般文件后缀为 .shshe...

2019-08-05 17:57:48 749 3

原创 浅析事务,锁和索引

文章目录事务锁隔离级别的原理索引MySQL的默认存储引擎为InnoDB而不是MyISAM的一大原因就是InnoDB是支持事务的,而MyISAM不支持事务。(我觉得前者强调安全,而后者性能更好,当然在要求并发量的当下,不足以成为被选择的理由,所以也渐渐被InnoDB淘汰)。事务事务具有ACID四大特性:原子性(Atomicity):有点像std::atomic(当然不完全一样)是一个最小...

2019-06-03 16:26:46 549 1

原创 github操作, 解决坑点的总结(持续更新...)

文章目录本地新建一个仓库要push到github上git pull拒绝合并无关历史git pull: 当前分之没有跟踪信息想要统计github仓库代码每次git clone过慢每次提交都要输用户名和密码git 的撤销操作本地新建一个仓库要push到github上在github上创建一个同名空仓库在本地仓库中执行 :$: git init$: git add$: git commi......

2019-05-08 20:49:51 1613 2

原创 使用cmake编译,组织C++项目

文章目录前言例一例二例三前言这篇博客是我对cmake用法的一些经验总结, 还很浅显, 如果有错误或者更好的方案, 欢迎指正~使用方法统一为在build目录中执行:$: cmake ..$: make我觉得养成外部编译是一个好习惯例一目录结构为:lzj@lzj:~/C-Plus-Plus/makefile_cmake/cmake_1$ tree.├── build├...

2019-05-08 19:51:23 1910 1

原创 Linux下安装protobuf以及在C++中使用

文章目录前言安装并配置环境变量简单使用前言本文只介绍如何安装protobuf, 如何编译使用了protobuf的 C++ 代码至于详细的protobuf对应产生的 C++ 的 API, 下一篇博客再讨论安装并配置环境变量安装辅助工具sudo apt-get install autoconf automake libtool curl make g++ unzip获取源代码,...

2019-05-02 23:55:47 5664 3

原创 浅谈 Linux 下的内存管理

文章目录前言面临的问题虚拟内存分段分页页表快表 TLB多级页表缺页错误进程的内存布局内存分配机制(不做详述)mm_struct 和 vm_area_structs前言因为春招的缘故, 经历了一次自我整体全面的知识上的查漏补缺, 接下来应该也会陆陆续续对这些知识点做一个总结吧, 今天就先总结一下Linux对内存管理方面的知识, 博主水平有限, 如果文章中有错误或遗漏的点, 欢迎指正和补充面...

2019-04-26 22:23:46 371 2

原创 计算机硬件组成(寄存器, 内存, 缓存的关系)

emmm 个人笔记篇…本篇博客为了我一直记不住这些知识点, 写篇博客日后每次翻开看看如果有问题, 欢迎指正!距离 CPU 最近的是寄存器, 其次是缓存, 内存最远, (更远的就是外存了, 磁盘啥的)缓存是存储一部分内存中的数据, 来提高性能, 不用让 CPU 每次都访问内存缓存又分为了一级缓存, 二级缓存我们说栈比堆快, 是因为栈基于一级缓存, 堆基于二级缓存一级缓存二级缓存是 ...

2019-04-17 19:48:06 1005

转载 最长不重复子串 (哈希 + DP)

自己没想出来, 代码来自别人的博客, 但是找不到出处了…代码实现int longestSubstring(string str){ //利用哈希的思想,key是每一个字符,value是其对应的下标 // 存储上一个重复字符的位置 int* lastPosition = new int[256]; //初始化,首字符之前没有与其重复的字符,都为-1 ...

2019-04-17 16:46:01 843

原创 处理使用 epoll ET 模式下文件描述符出现饥饿的情况

考虑如下情况:使用epoll ET模式时, epoll_wait返回就绪文件描述符集合, 然后我们循环处理, 但这时如果有一个文件描述符上有大量输入(不间断的输入流), 因为我们ET模式需要一直读到返回EAGIN / EWOULDBLOCK, 那我们就会一直在处理这个文件描述符, 而导致其他文件描述符得不到处理,这就是采用边缘触发时有可能出现的文件描述符饥饿情况处理参考Linux/Unix...

2019-04-05 10:33:30 1135 4

原创 小心使用指针当做 unordered_set / unordered_map 的键

当我们试图使用指针作为哈希的键时, 要小心下面的情况:#include <set>#include <map>#include <vector>#include <memory>#include <utility>#include <iostream>#include <unordered_set>...

2019-04-04 20:46:34 2392

原创 Redis源码学习之 网络库模块 ae.c / ae_epoll.c

文章目录前言必要数据结构封装 epoll 的必要成员文件事件时间事件结构已就绪事件事件处理器的状态 (就是最主要的 aeEventLoop初始化事件处理器状态创建 listenfd 并加入 epoll执行主循环询处理事件 aeProcessEvents数据读写处理非活动连接前言因为 Redis 的网络模块是一个采用 epoll 的但线程模型, 阅读起来相对更加简单, 就先从这一部分入手文章...

2019-03-30 23:03:37 645

转载 leetcode: Generate Parentheses

转自博客给定n对括号, 编写一个函数来生成所有格式良好的括号组合例如, 给定n = 3, 解集为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]class Solution{ public: vector<string> generateParenthesis(int n) ...

2019-03-28 20:56:58 140

原创 [STL 学习]: STL的空间配置器

本篇博客大部分内容来自于于侯捷老师的STL源码剖析和一些博客, 仅用作个人的学习记录和日后复习, 如果有博主觉得侵权, 可以联系我删除文章目录new / delete 和 ::operator new / ::operator deletestd::allocconstruct 和 destroy空间的配置与释放第一级配置器:二级配置器:空间配置函数 allocate()空间释放函数 deal...

2019-03-27 16:11:42 183

原创 给定一个无序数列, 找出右边第一个比他大的数

今天面腾讯, 这道题没想出来题目要求基本如题, 然后只有一个元素的时候 (最右末尾元素) 对应值为空当时面试官要求时间复杂度为 O(n), 想了半天也没想出来提示了使用栈和栈顶指针做, 过了一会时间不够了就问下面的题了, 现在回过头来看一下这道题这道题我一开始想的是栈中存储对应元素, 但是怎么推都达不到 O(n) 的复杂度, 后来百度了一下, 看到一篇博客, 原来栈中可以存储数组的索引...

2019-03-21 20:22:38 1950

原创 堆排序学习总结

文章目录@[toc]基本思想时间复杂度代码实现基本思想堆是一种完全二叉树, 分为大顶堆和小顶堆.本篇博客我们默认要进行一个升序排序, 那么我们要构建一个大顶堆堆排序的算法思想就是先构建一个大顶堆之后, 堆顶元素就是该数列最大值, 然后我们将其(即array[0])和数组末尾元素(即array[i])交换, 然后将剩下的元素(即array[0] 到 array[i - 1])重新进行调整...

2019-03-11 15:39:33 652

原创 DP : 0-1背包问题

文章目录问题描述解题思路状态转移方程不将第 i 种物品放进背包将第 i 种物品放进背包优化空间复杂度代码实现问题描述给定一组物品, 每种物品都有自己的重量和价格, 在限定的总重量内, 我们如何选择, 才能使得物品的总价格最高每种物品只有一件, 要么放进背包, 要么不放, 即只能选择 0 / 1个, 该问题称为0-1背包解题思路设 F(i, j)表示放进前 i 种物品, 总容量不超过 j...

2019-03-10 16:58:18 231

原创 DP : 最长公共子序列

文章目录求解思路代码实现这篇博客是听完郭炜老师的课之后的总结求解思路现在假设求两个字符串s1, s2的最长公共子序列s1长度为len1, s2长度为len2, 我们设MaxLen(i, j)表示:s1左边 i 个字符形成的子串, 与s2左边 j 个字符形成的子串的最长公共子序列长度i, j 从 0 开始那么我们最终求解的是 MaxLen( len1, len2 )的值那...

2019-03-08 22:26:47 286

原创 DP : 最长递增子序列

文章目录问题描述时间复杂度为O(n2)时间复杂度为O(n logn)问题描述对于一个数字序列,请设计一个复杂度为O(nlogn)的算法,返回该序列的最长上升子序列的长度,这里的子序列定义为这样一个序列U1,U2…,其中Ui &amp;lt; Ui+1,且A[Ui] &amp;lt; A[Ui+1]。给定一个数字序列A及序列的长度n,请返回最长上升子序列的长度。测试样例:[2 ,1, 5, 3...

2019-03-07 15:51:42 199

原创 红黑树(R-B Tree)的插入以及与AVL树的区别

文章目录红黑树的定义红黑树的插入操作红黑树的自平衡case 1case 2case 3case 4case 5总结红黑树与平衡二叉树红黑树的定义红黑树是特殊的二叉搜索树, 拥有自平衡的能力, 解决了BST树有可能退化成单链表的情况, 效率良好, 可以在O(log N)时间内完成查找, 删除, 添加. 红黑树应用很广泛, 主要用来存储有序的数据, STL 中的 set, map 等的内部实...

2019-02-18 21:13:06 459

原创 平衡二叉树(AVL树)的平衡原理以及插入,删除操作

文章目录AVL树的定义AVL树不平衡的情况左子树的左子树插入结点 (左左)右子树的右子树插入节点左子树的右子树插入节点右子树的左子树插入节点删除结点插入节点更复杂的情况所有代码测试结果AVL树的定义平衡因子 : 树中某结点其左子树的高度和右子树的高度之差AVL树中的任意一个结点, 其平衡因子的绝对值小于2AVL树是一种特殊的二叉搜索树 (BST树), 相对于数据极端情况下, 二叉搜索树会...

2019-02-13 21:59:47 31583 16

原创 C++类成员函数可以访问同类不同对象的私有成员

example如下例:class Test{public: Test(int v) : val(v) {} Test(const Test&amp;amp; t) { val = 100; cout &amp;lt;&amp;lt; t.val &amp;lt;&amp;lt; endl; } void show(Test a) { cout &amp;lt;&amp;lt; a.val &amp;lt;&amp;

2019-01-29 20:38:25 6214 4

原创 二叉搜索树 (BST) 的插入, 删除, 查找

文章目录二叉搜索树 (BST) 的定义BST 的构建BST 的插入BST 的查询BST 的删除BST 的检验二叉搜索树 (BST) 的定义二叉搜索树 (Binary Search Tree)的结点定义一般如下typedef struct Node { int key; //节点关键值 Node* left; //左子树指针 Node* right; //右子树指针} ...

2019-01-27 20:50:41 1659 1

原创 动态规划: 钢条切割的三种解法

/*钢条切割不同长度的钢条对应不同的价格给定一定长度的钢条,怎样切割利益最大注意: 最优解可能是完全不需要切割*/#include &amp;lt;vector&amp;gt;#include &amp;lt;iostream&amp;gt;using namespace std;//给定长度从1到10对应的不同价格vector&amp;lt;int&amp;gt; price{0, 1, 5, 8, 9, 10, 1...

2019-01-24 17:52:16 607

原创 记一次BUG: set / map 添加元素失败??? /* (strict weak ordering) */

文章目录BUG 描述set / map 的 insert / emplace 的返回值set / map 的去重于是 BUG 就诞生了 :!!!BUG 描述记录一个纠结了一天的 BUG:向 set 容器中添加自定义类, 然后发现并没有添加进去, 真的是头大, 排查发现告诉我已经有相同 key 值元素存在了, 可我明明两个值不同set / map 的 insert / emplace 的返...

2019-01-20 00:36:29 720 2

原创 进程线程的区别与联系

文章目录前言进程概念线程概念地址空间通信手段调度和切换进程何时调度线程切换进程的创建过程fork 函数task_struct父子进程间的文件共享线程的实现一对一模型 (内核级线程) 1:1多对一模型 (用户级线程) M:1多对多模型 两级模型 M:N前言书本上的定义: 线程是调度的基本单位, 进程是资源分配的基本单位应该大家都知道这个概念, 但是进程和线程之间的异同绝不仅仅是这一句话这么简...

2019-01-19 20:36:07 324

原创 muduo 定时器的新理解

吐槽部分你以为你以为的就是你以为的么…今天重新看了一下 muduo 的定时器实现的源码部分, 才发之前的理解是错, 之前只是停留在 muduo 的定时器是 timerfd 是实现的, 没有再去往下看, 今天重新捡起来看了一下源码, 才发现以前的理解错了muduo 定时器muduo 定时器封装了 Timer.h 里面保存的是超时时间和回调函数, TimerQueue.h 使用set容器保存多...

2019-01-04 22:48:13 1044 3

c++实现merkle_tree

c++代码实现merkle_tree树..............

2018-04-23

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

TA关注的人

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