自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 java包机制

包机制是java中管理类的重要手段。开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理。包对于类,相当于文件夹对于文件的作用。我们通过package实现对类的管理,package的使用有两个要点:1.通常类的第一句非注释性语句。2.包名:域名倒看些即可,再加上模块名,便于内部管理类。...

2019-05-05 14:42:49 180

原创 共享存储映射

存储映射I/O存储映射I/O(memory-mapped I/O)使一个磁盘文件与存储空间中的一个缓冲区相映射。于是当从缓冲区中获取数据,就相当于读文件中的相应字节。与此类似,将数据存入缓冲区,则相应的字节就自动写入文件。这样,就可在不适用read和write函数的情况下,使用地址(指针)完成I/O操作。使用这种方法,首先应通知内核,将一个指定文件映射到储存区域中。这个映射工作可以通过mmap...

2019-04-23 21:25:36 316

原创 进程间通信

在进程间完成数据传递需要借助操作系统提供特殊的方法,如:文件,管道,信号,共享内存,消息队列,套接字,命名管道等。随着计算机的蓬勃发展,一些方法由于自身设计缺陷被淘汰或者弃用。现今常用的进程间通信方式有:①管道(使用最简单)②信号(开销最小)③共享映射区(无血缘关系)④本地套接字(最稳定)管道1.其本质是一个伪文件(实为内核缓冲区)2.由两个文件描述符引用,一个表示读取端,一个表示写...

2019-04-23 18:11:59 123

转载 java入门知识

java有三个版本分别为JAVAEE,JAVASE,JAVAME其关系如下:java的核心优势①跨平台/可移植性②安全性③面向对象④简单性⑤高性能⑥分布式⑦多线程⑧健壮性计算机高级语言的类型主要有编译型和解释型两种,而java语言是两种类型的结合。java首先利用文本编辑编写java源程序,源文件的后缀名为.java; 再利用编译器(javac)将源程序编译成字节码文件,字...

2019-04-23 14:50:11 90

原创 回收子进程

回收子进程的函数:pid_t wait(int *status);//成功:清理掉的子进程ID;失败:-1(没有子进程)当进程终止时,操作系统的隐式回收机制会:1.关闭所有文件描述符2.释放用户空间分配的内存。内核的PCB仍存在。其中保存该进程的退出状态。(正常终止——>退出值;异常终止——>终止信号)可使用wait函数传出参数status来保存进程的退出状态。借助宏函数来进一...

2019-04-21 16:58:47 227

原创 父子进程共享

父子进程之间在fork后,有哪些相同,哪些相异之处呢?刚fork之后:父子相同之处:全局变量,data,text,栈,堆,环境变量,用户ID,宿主目录,进程工作目录,信号处理方式父子不同之处:1.进程ID 2.fork返回值 3.父进程ID 4 .进程运行时间 5.闹钟(定时器) 6.未决信号集似乎,子进程复制了父进程0-3G用户空间内容,以及父进程的PCB,但pid不同。真的每fork一...

2019-04-21 08:49:17 1480

转载 PCB(进程控制块)中所储存的信息

1.进程id。系统中每个进程有唯一的id,在c语言中用pid_t类型表示,其实就是一个非负整数。2.进程的状态,有就绪,运行,挂起,停止等状态3.进程切换时需要保存和恢复的一些CPU寄存器4.描述虚拟地址空间的信息。5,描述控制终端的信息。6.当前工作目录(Current Working Directory)7.umask掩码8.文件描述符表,包含很多指向结构体的指针9.和信号相关...

2019-04-20 17:21:31 5171

原创 MySQL单表查询

简单查询通过条件查询查询排序限制查询记录数使用集合函数查询分组查询使用正则表达式查询一、简单查询简单查询select * from 表名;select 字段1,字段2 from 表名;避免重复DISTINCTselect DISTINCT 字段1 from 表名;注:不能部分使用DISTINCT,通常仅用于某一字段。通过四则运算查询select 数值字段*任意数字 ...

2019-04-20 09:03:19 128

原创 MySQL数据操作

在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括使用INSERT实现数据的插入,DELETE实现数据的删除以及UPDATE实现数据的更新。插入数据 inesrt更新数据 update删除数据 delete一、插入数据INSERT1.插入完整数据(顺序插入)insert into 表名 values(值1,值2,值3…值n);2指定字段插入数...

2019-04-18 21:15:46 174

转载 MySQL数据库基本操作

1.information_schema:虚拟库,主要储存系统的一些数据库对象的信息2.performance_schema:主要存储数据库服务器的性能参数3.mysql:授权库,主要存储系统用户的权限信息4.sys:主要存储数据库服务器的性能参数创建业务数据库create database 数据库名字;删除数据库drop database 数据库名字;数据类型数值类型:整数类...

2019-03-31 16:29:51 130

转载 MySQL基础

数据储存方式发展1.人工管理阶段2.文件系统阶段3.数据库系统管理阶段数据库技术构成1.数据库管理系统DBS2.SQL语言a.DDL语句 数据库定义语言bDML语句 数据库操纵语言c.DQL语句 数据库查询语言d.DCL语句 数据库控制语言3.数据访问技术a. ODBC PHP <.php>b.JDBC JAVA <.jsp>...

2019-03-31 13:24:43 94

原创 QT之Layout类

这个类是用来布局的,它有各种各样既定风格的盒子,往这个盒子里添加控件,这些控件就会按照这个盒子的风格来找到自己的位置举个例子,一个水平盒子往里面添加控件,是按照从左往右的顺序依次添加QHBoxLayout layout;//首先创建一个水平盒子layout.addStretch(1);//添加一根弹簧layout.addWidget(&button);//添加一个按钮控件layo...

2019-03-23 20:22:21 3565

原创 Qt,如何让一个QGraphicsItem图形项动起来

首先,这个图形项要继承于QGraphicsObject。然后创建一个动作数组QParallelAnimationGroup * animation = new QParallelAnimationGroup;然后创建一个动作,拿旋转举个例子吧QPropertyAnimation * rotate = new QPropertyAnimation(qgraphicsItem, "rotat...

2019-03-18 14:10:21 1927

转载 QT字符串

QTextCodec类提供文本编码的转换功能。其静态函数setCodecForTr(),用来设置QObject::tr()函数所要使用的字符集。而tr()函数可以使用指定的字符集来对文本编码进行转换。...

2019-03-10 19:57:58 261

翻译 STL之List

STL中的List是一个双向链表。链表是一种物理储存上不连续,逻辑上连续的数据结构。逻辑上的连续有指针来实现。现在不讲如何实现,来看看STL中List如何使用。template &amp;lt; class T, class Alloc = allocator&amp;lt;T&amp;gt; &amp;gt; class list;//list模板,第二个参数为缺省参数,是分配器,一般不需要写,第一个参数是指定Lis...

2018-12-16 15:03:43 99

原创 new,delete和malloc,free的区别

malloc只分配memorynew 先分配memory 再调用ctor(构造函数)free,直接释放memory。delete 先调用析构函数,再释放memory

2018-12-16 11:05:35 91

转载 多重继承

多重继承(MI)指的是 有多个直接基类的类。 公有MI表示的也是is-a的关系。必须用关键字public来限定每一个基类,否则,编译器将认为是私有派生。

2018-12-16 10:50:52 202

原创 快速排序

快速排序是利用递归来实现的一种排序算法,每执行一次确定一个基准值并返回。需要传入 指向数组第一个元素 和 最后一个元素的指针作为参数。分别设为low 和 high。下面我们模拟一下计算机如何执行:(默认升序)以50, 36, 66, 76, 36, 12, 25, 95 为例当进入函数时选取第一个值为基准值(也就是50)先和high指向的元素比较(95)50 &lt;= 95...

2018-11-25 18:19:13 97

原创 类模板与特化

设计一个类,它的数据成员的类型可能根据需求变化而变化,笨方法是每一个类型都单独写一个类出来,但是这些类除了改动一些类型,其它基本一样,重复的写是很繁琐的事情,而且有时你需要的类型是你新增的,难道要再写一遍吗?C++提供了模板语法,下面简单举个例子:template &lt;class T&gt;// class 也可以写成typenameclass complex{ private:...

2018-11-08 16:52:27 357

原创 如何在类中定义static成员

在类中直接写class Person{ private: static int a = 9;};这样写是会报错,C++不允许在类内初始化非常量静态成员。那你可能会这么想static不是会自己初始化不赋值不就行了。class Person{ private: static int a; public: int getInt(){return a;}};这样写...

2018-11-07 15:29:31 1319

原创 浅拷贝和深拷贝

知道了拷贝构造函数的基本用法之后,还需明白不同的类,所需的拷贝构造函数写法不同。根据类中是否有带指针的数据成员,来判断写哪种拷贝构造函数。1.不带指针—浅拷贝。#include &lt;iostream&gt;using namespace std;class complexs{ private: double Real; double Image; public: c...

2018-11-07 11:28:29 75

原创 拷贝构造函数

拷贝构造函数顾名思义就是具有拷贝功能的构造函数。例:class Person{ private: public: Person(const Person&amp; p);}参数为自身类的引用的构造函数为拷贝构造函数。那么它何时调用呢?它本质还是一个构造函数,所以是在声明一个对象的时候调用。Person a; Person b = a;//和Person b(a...

2018-11-07 10:05:13 78

原创 构造函数和析构函数

C++类具有封装的特性,即外界不能直接访问类中成员,那类中的数据成员如何初始化呢。其实在类中有一种特殊的函数叫构造函数,它没有返回值,并且函数名与类名一致,在声明一个对象的时候调用构造函数。class person{private:int a;char *b;person(int x,char *y) : a(x), b(y){}}构造函数可以像上面这样写,:后面叫做初始化列表,一...

2018-11-05 20:49:05 113

原创 引用的用法

引用是C++新增的语法,和指针类似,但又有区别。引用有代表的意思,而指针是一个变量的地址值。int a = 3;int &amp;x = a; //这样做相当于给a取了一个别名,操作x就是操作a;注意:引用必须在声明时就进行初始化。且不能将表达式赋给引用变量。int b = 1;x = b;还有x一旦声明完就只能代表那一个变量,因此上面这句并不是说让x代表b,而是将b中的值赋给...

2018-11-05 19:51:37 1002

翻译 STL之find与二分查找

要使用find()函数需包含algorithm头文件。template &lt;class InputIterator, class T&gt;InputIterator find (InputIterator first, InputIterator last, const T&amp; val);以上是find函数的声明。所以如果你传入vector::iterator 类型的迭代器 它...

2018-11-01 19:50:39 1061

原创 STL容器之array

Array是C++11新增的一个模板类。Array是一个固定大小且连续储存的线性数组。因此它不能像其他容器那样可以通过allocator来改变自身储存容量。Template parameters(模板参数):T:数据类型N:指定Array储存元素的数值。Member functionsbegin() 返回一个指向第一个元素的迭代器。end() 返回一个...

2018-10-31 20:28:06 154

原创 构造函数放在Private

众所周知,外部只能调用class中的Public函数,于是给人一种错觉,构造函数只能放在Public中。其实不然,如果你想设计一个只能生成一个对象的类,并且,该对象只在需要时声明。那么你就需要把构造函数放入Private中,问题是如何得到这个类的对象呢?可以有如下操作:class Person{private:Person();public:Person&amp; getOneP...

2018-10-31 19:57:31 2846

原创 虚函数的实现机制

假设有两个类如下:class animal{void sport();}class tigger:public animal{void sport();}我们都知道不同的动物运动方式都不会完全一样,因此 tigger继承于animal时应该要重新写一个sport,但问题是如果像上面那样写就会出现一个问题。tigger中其实有两个sport方法,分别是animal::sport(...

2018-10-25 22:04:23 1820

原创 const的用法

const是一个关键字,加在变量前,将其声明为常量,简单来说,就是不希望该变量的值发生改变。因此,它必须在声明该变量时就赋初值。const与指针如果const加在*符号前面,如:const int *p = &amp;amp;a;或 int const *p = &amp;amp;a;则称p为常量指针,其本质都是const修饰 p,因此不可使用p改变a中的值,但是p可以指向其他地址。如果const加在符...

2018-10-19 09:17:14 287 1

转载 tcp文件传输

注意点:文件发送时,先发送文件头部,要延时20ms再接收文件内容,否则会出现粘包的情况,导致文件接收失败。用QString的section函数可将文件信息拆分出来。...

2018-10-13 10:20:36 122

原创 QString 和 char*以及QByteArray 之间的转换

1.QString转char *无中文时QString str = “hello”;QByteArray b = str.toLatin1();char *ch = ba.data();有中文时第二行改为 :QByteArray = str.tolocal8bit();2.char *转 QString构造函数QString(const char *ch);3.QByteAr...

2018-10-08 19:18:37 170

原创 信号与槽

connect:是用来说明控件与控件或窗口之间的关系。qt5版本以上connect 用法connect(1,2,3,4);1:传入信号发出者, 为指针类型2:要处理的信号 //&amp;发送者的类名::信号名字 ps:可在帮助文档中查看其可产生的信号。3:信号接收者,指针类型4:槽函数,信号处理函数 //&amp;接收者类名::槽函数qt4版本1:传入信...

2018-10-03 23:00:35 60

空空如也

空空如也

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

TA关注的人

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