- 博客(19)
- 收藏
- 关注
原创 Mysql的锁机制(一)
总的来说,Mysql各存储引擎使用了三种类型的锁定机制:行锁定,页级锁定和表级锁定。下面我们简要进行分析这三种锁定的特点和各自的优劣。1.行级别锁定特点:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。InnoDB实现了两种类型的行级锁——共享锁和排他锁。在锁定机制的实现过程中为了让行级锁定和表级锁定共存,InnoDB使用了两种内部使用的意向锁,也就是意向共享锁和意向排他锁。共享锁(S)允许一个事务读一行数据时阻止其他的事务读取相同数据的排他锁。( Select *
2020-10-18 21:29:13 128 1
原创 进程与线程的区别
原码、反码、补码计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。原码: 直接将二进制按照正负数的形式翻译成二进制就可以。反码 :将原码的符号位不变,其他位依次按位取反就可以得到了。补码 :反码+1就得到补码。 正数的原、反、补码都相同。...
2019-07-09 23:37:38 115
原创 Linux下的重要目录
主要简单介绍/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp 等目录。/bin:/usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。/sys:文件系统访问 Linux内核/SELinuxSELinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统...
2019-05-01 15:41:42 128
原创 Linux:readelf命令
readelf命令,一般用于查看ELF格式的文件信息,常见的文件如在Linux上的可执行文件,动态库(.so)或者静态库(.a) 等包含ELF格式的文件。-a :–all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I-h :–file-header 显示elf文件开始的文件头信息.-l :–program-headers ;–segments 显示...
2019-05-01 15:14:23 233
原创 开发工具:除了gcc其他的一些编译器
除了gcc, 还有哪些常用的牛逼的编译器:MSVC,Windows平台上最常用的编译器,在C++编译器圣战中的胜利者,一个常被人诟病的是对标准的支持不够新不够快(最近开始逐步加快了)。随着微软发布基于Clang/ C2,这一条路以后若成功,MSVC与Clang / C2并行,甚至逐步逐步退出舞台,都是有可能的事情。Clang,重点介绍。licence极度友好,代码质量非常棒,采用的IR为LL...
2019-05-01 14:28:16 287
原创 Linux入门:Linux的基本指令
ls 指令功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。语法: ls [选项][目录或文件]-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件-k 以 k 字节的形式表示文件的大小。ls –al...
2019-04-24 15:10:47 170
原创 C++:多态的原理——虚函数表(虚表)
先来一道练习:`class Base{public: virtual void Func1() { cout << "Func1()" << endl; }private: int _b = 1;};sizeof(Base)的值是多少呢?通过观察测试我们发现b对象是8bytes,除了_b成员,还多一个__vfptr放在对象的前面,对象中的这个...
2019-04-24 12:08:28 447
原创 C++:多态
什么是多态?多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。多态的实现条件调用函数的对象必须是指针或者引用。被调用的函数必须是虚函数,且完成了虚函数的重写。那么什么是虚函数,什么又是虚函数的重写?虚函数:就是在类的成员函数的前面加virtual。虚函数的重写:派生类中有一个跟基类的完全相同虚函数,我们就称子类的虚函数重写了基类的虚函数。完全相同是指,函数名、参数...
2019-04-23 16:26:22 96
原创 C++:菱形继承与虚拟继承与虚基表
单继承一个子类只有一个直接父类时称这个继承关系为单继承。多继承一个子类有两个或以上直接父类时称这个继承关系为多继承。菱形继承菱形继承是多继承的一种特殊情况。菱形继承的问题:从下面的对象成员模型构造,可以看出菱形继承有数据冗余和二义性的问题。在Assistant的对象中Person成员会有两份。二义性问题举例以及解决方法class Person{public: string...
2019-04-23 14:57:24 188
原创 C++:继承
什么是继承?继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程,继承是类设计层次的复用。继承的格式class Person{ string _name = "peter"; // 姓名 int _age = 18; // 年龄};...
2019-04-23 13:41:00 102
原创 C++:explicit关键字
C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).构造函数不仅可以构造与初始化对象,对于单个参数的构造函数,还具有类型转换的作用。class Date{public: Date(int year) :...
2019-04-22 16:47:58 89
原创 c++:类和对象
类的基本认识C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。并且我们更习惯用class来替代struct。(其实他们存在着很多区别,但这样类比可以更好地有类的一个概念)举个例子:class Date{private: int _year; int _month; int _day;}访问限定符说明public修饰的成员在类外可以直接被访...
2019-04-22 15:58:11 117
原创 c语言:自定义类型——结构体,位段,枚举,联合
一、结构体1.结构体的声明:数组是一组相同类型元素的集合,当我们想将不同的不同类型的元素组成一个集合时,则可以用结构体来声明。比如,我们想声明一个学生的信息集合:struct student{ char name[20]; char sex[5]; short int age; char student_number[20];};//记得一定要有分号哟!!!!这时一个新的...
2018-11-25 13:59:56 213
原创 c语言:数据在内存中的存储
一、整形在内存中的存储1.整形的大小为4字节,共计32比特位,首位为符号位,0为正,1为负。2.剩余位则存储数据的补码。原码:将数据翻译为二进制数据。反码:原码符号位不变,其余位取反。补码:反码 +1。注:正数的原反补一样!3.大端与小端。大端:指数据低位存于高地址,数据高位存于低地址。小端:指数据低位存于低地址,数据高位存于高地址。举例:int a=10;故我的机器为小端...
2018-11-22 23:47:45 264
原创 C语言: 指针与数组的联系
1.指针与数组没有关系!指针在32位系统下永远只占4个字节,存储着一个地址。它可以指向任何地方,但不一定能够通过指针访问到。数组的大小和他的元素类型与数量多少有关,可以存储任何类型的元素(除了函数)。2.以指针的方式访问和以下标的方式访问。&amp;amp;lt;1.访问指针 char* p = &amp;quot;abcdefg&amp;quot;; char receive1; char receive2; recei
2018-11-19 13:02:39 185
原创 C语言简易实现扫雷
游戏整体思路:创建并初始化两幅地图将雷布置于隐藏地图之中玩家开始游戏,输入排雷坐标。比较隐藏地图中是的正确答案,并输出结果于下一步线索。直至炸死或排雷成功。//game.h#ifndef __GAME_H__#define __GAME_H__#include<stdio.h>#include<stdlib.h>#include<time....
2018-10-23 20:54:36 198
原创 c语言实现简易三子棋游戏
游戏整体思路:创建并输出棋盘;玩家落子并判定输赢;电脑落子并判定输赢;若无人胜则继续2 ,3步骤直至棋盘满。下面是实现代码://game.h#ifndef __GAME_H__#define __GAME_H__#include<stdio.h>#include<stdlib.h>#include<time.h>#include&l...
2018-10-23 19:51:42 169
原创 C语言学习总结——操作符
分类:算术操作符 移位操作符 位操作符 赋值操作符 单目操作符关系操作符 逻辑操作符 条件操作符 逗号表达式算术操作符:+ - * / %除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。 对于/操作符如果两个操作数都为...
2018-10-23 19:26:56 129
原创 汉诺塔的C语言简易实现(递归)
汉诺塔问题规则简述:有三个塔座,在第一个塔座上有n个直径大小不同的,从小到大依次标号为1,2,3……,n的圆盘。要求将所有圆盘移动至第三个塔座且仍按同样顺序叠排。(每次只能移动一个圆盘且任何时候不能将一个较大圆盘压在较小圆盘之上。) 那我们该如分析这个问题呢? 无从下手之时,不妨我们先试着玩一下这个游戏。 我们将塔座分别编号为X (起始塔座),Y(辅助塔座),Z(目标塔座...
2018-10-17 21:57:24 533
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人