01 2022 档案
摘要:数据在内存中是以小端存储的 小端存储:数据的高位存放在内存地址中的高位,数据的低位存放在内存地址中的低位 比如12 34 56 78 内存中存放的: 1000:78 1001:56 1002:34 1003:12 大端存储:数据的高位存放在内存地址中的低位,数据的低位存放在内存地址中的高位 1000
阅读全文
摘要:fastDFS: fastDFS是一个分布式文件系统 (文件系统的全部, 不在同一台主机上,而是在很多台主机上,多个分散的文件系统组合在一起,形成了一个完整的文件系统。) 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,注重高可用、高性能等指标 冗余备份: 纵向扩容 线性扩容: 横向
阅读全文
摘要:使用GROUP BY 子句数据分组 使用HAVING 子句过滤分组结果集 分组函数作用于一组数据,并对一组数据返回一个值。如:AVG、COUNT、MAX、MIN、SUM操作的是一组数据,返回一个结果。 分组函数我的理解是 对相同的一组数据 取 一个值, 分组中可以继续分组, 比如对小学进行分组,分组
阅读全文
摘要:1. json的格式 json数组: [int, double, bool, string, json array, json object] // C数组 int array[] = {2,3,4,5,6}; for(int i=0; i<sizeof(array)/sizeof(int); ++
阅读全文
摘要:1. OCCI - ORA-24550 在使用occi多线程访问oralce服务器的时候, 会出现ORA-24550 错误, 错误信息如下: ORA-24550 : signal received : [si_signo=11] [si_errno=0] [si_code=50] [si_adr =
阅读全文
摘要:建好sqlite数据库之后, 可以看到如下图所示: 参考网站: https://blog.csdn.net/wyansai/article/details/52901166 参考网站: https://www.cnblogs.com/xia-weiwen/archive/2017/05/04/680
阅读全文
摘要:Header: include qmake: QT += sql 首先需要在QT项目文件的*.pro文件中添加: QT += core gui sql 所用到的头文件: #include <qDebug> #include <QSqlDatabase> #include <QSqlQuery> #i
阅读全文
摘要:类中的静态成员就类似一个当前类中有效的全局变量, 对象和类都使用的同一份内存地址 class test{public: int a = 10; static int b;};int test::b = 0; 使用类成员需要初始化,不然会报无法解析外部符号的错误 如果类中有静态函数,那么静态函数只能使
阅读全文
摘要:char* arr= "苦瓜"; 字符串是 const char *类型,可以在前面加上const, 或者强转char* arr = (char* )"苦瓜"; 在或者使用数组 char arr[] = "苦瓜";
阅读全文
摘要:一个字符的宽度是一个字节,它在内存中是以ascll码的方式存储的 在网络字节序中,utf-8中文编码是需要把中文的字符串转换成16进制,在存入内存中,比如 ‘啊’ 的编码是 aa bb cc ,编码占6个字节, 然后转成16进制整形数据就是 aabbcc 在内存中占三个字节
阅读全文
摘要:进入CALL中的时候会保存现场,提升堆栈,变量的初始化就在提升堆栈的时候一起提升的,没有变量的时候固定提升0x40个字节 ,当有变量的时候就会增加提升的字节,下图中有4个DWORD类型的数据,所以提升堆栈0x50个字节 上图4个数据是不同的类型,提升的字节还是按照DWROD对齐的,但是在栈中存放的还
阅读全文
摘要:信号槽是QT非常核心的一种调用,我是感觉非常像回调函数,因为信号的触发是可以有条件的,比如网络的sock,监听到有链接到来就发射信号,然后槽函数去处理 在或者是自己定义的信号,比如监听谋一个值,当这个值变化的时候,就发射一个信号去处理,只是自定义的信号是自己写的, 回调函数就是把函数当成参数传给fu
阅读全文
摘要:#include <iostream> #include"stdio.h" using namespace std; class A { public: void f1() { printf("f1aaa "); } void f2() { printf("f2aaa "); } int f3(in
阅读全文
摘要:1.什么是段寄存器,有哪些 当我们用汇编写某一个地址时 mov dword ptr ds:[0x123456],eax 我们真正读写的地址是 ds.base + 0x123456、 2.段寄存器有 ES CS SS DS FS GS LDTR TR ES:扩展段。在串操作时(比如cmovs)目标操作
阅读全文
摘要:段描述符与段选择子 段寄存器有96位,其中80位不可见,包括Base,limit,attribute。16位可见,即段选择子selector。 对段寄存器进行写入时,CPU根据段选择子到GDT表中寻找段描述符,段描述符共8字节,64位,CPU根据段描述符填充段寄存器。 那么问题就是,如何用64位的段
阅读全文
摘要:在之前段寄存器随笔中说了一下段寄存器是用来保护内存中的数据不被随意访问(当然还有页),那如何限制你的呢 首先要了解段寄存器的结构 段寄存器的结构长度是96位,可以显示的只是16位的selecter(段选择子),剩余部分不可见,(但是可以探测到的) 在段寄存器中有个attribute属性,它会限制你能
阅读全文
摘要:在我的理解中指针就是地址,虽说它可以做++--,但本质操作的还是内存地址 指针难理解是因为指针它有多级指针,就是指针变量容器中存放的依然是指针, char a =10; char* p1 = &a; char** p2 = &p1; char*** p3 = p2; char**** p4 = &p
阅读全文
摘要:在C++中指针就是内存地址(可以这么理解,虽然指针可以做++--,但本质操作的是内存地址) char a = 10; char* p = &a; 将a的地址赋值给了p p容器中存放的就是a的地址 而引用是个啥 图1 从上图可以看到 引用就是 两个变量的地址相同,指向的内容也是相同的, 可以看到将x的
阅读全文
摘要:1.什么是索引 索引,相当于书的目录,提高数据检索速度。提高效率(视图不可以提高效率) 一种独立于表的模式对象, 可以存储在与表不同的磁盘或表空间中 索引被删除或损坏, 不会对表产生影响, 其影响的只是查询的速度 索引一旦建立, Oracle 管理系统会对其进行自动维护, 而且由 Oracle 管理
阅读全文