- 博客(33)
- 收藏
- 关注
原创 C++对象属性与初始化规则
推荐使用初始化列表初始化初始化列表我们不写,但是编译器依然会自动初始化一次———》针对自定义类型声明和定义,声明是告诉程序我要定义这个东西定义是实际开辟空间,分配内存初始化列表可以认为初始化列表是成员变量定义的地方。 必须放在初始化列表: 常量,引用,没有初始化的 必须要显示的写出构造函数的情况: const类型的成员变量(还必须在初始化...
2018-07-26 19:28:08
1316
原创 引用和指针的区别
C++为什么要有引用在学习C语言的时候我们都知道有指针这么一个东西,相信大部分人都头疼过,因为指针虽然威力很大,但是很棘手,一不小心就玩脱了。指针其实就是一个变量,只不过指针存放的是数据在内存中存放的地址而不是数据本身的值,通过修改指针指向的类容可以改变一个变量的值引用是引用了对象的一个同义词,就像一个别名,对引用的操作和对变量直接操作完全一样,引用和指针在语法上看起来不同,但是底层实...
2018-07-26 19:24:55
240
原创 C++函数重载的实现
C++的域作用限定符和命名空间1.C++域作用符::是域作用限定符 例如::a;域作用限定符前面是空表示全局。class A{public: A(int x){};//构造函数 ~A(){};//析构函数private: int _a;//私有成员变量};A::A(int x){//这里的::就是域作用限定符 _a = x;}域作用限定符...
2018-07-26 18:53:06
254
原创 Linux__计算机网络(应用层/HTTP协议)
重点知识: ·理解应用层协议,学习HTTP协议 ·理解传输层的作用和TCP的机制和特性 ·理解网络层的作用和IP协议 ·理解数据链路层的作用和ARP协议 ·理解TCP/IP协议 ·分析网络问题的工具和方法应用层 最贴近于实际,解决日常需求的网络应用,就是在这一层,也是和用户...
2018-07-06 00:28:20
406
原创 Linux__网络编程套接字(UDP/TCP)
重点知识: ·IP地址、端口号、网络字节序的基本概念 ·socket api的基本用法 ·实现简单的UDP客户端/服务器 ·实现简单的TCP客户端/服务器(单链接版本,多进程版本,多线程版本) ·理解tcp服务器建立连接,发送数据,断开连接的流程基础概念: IP地址:IP协议有两个版本,IPV4和IP...
2018-07-05 18:22:28
395
原创 Linux———计算机网络
计算机网络(连接分散计算机设备以及实现信息传递) 计算机只是人们使用的一种工具和设备,而自从计算机网络出现之后,仿佛赋予了计算机新的生命,实际上,计算机网络就是将地理位置不同的具有独立功能的多台计算机及其外部设备,通过信道连接起来,在网络操作系统,网络软件管理软件及网络通信协议管理和协调下,实现资源共享和信息传递的计算机系统。 学习重点: ·网络发展背景,局域网/...
2018-07-04 14:52:44
501
原创 Linux_HTTP服务器
一个非常简单的http服务器的搭建,用到了TCP协议以及HTTP协议,首先建立一个监听套接字,用来监听链接我们服务器的请求,当监听成功后将这个监听套接字交给一直在等待的接受请求,接收后返回一个用于给客户端通信的套接字,此时拿着这个套接字就可以像访问我们的客户端发送消息了,我们此时发送的消息是一个简单的HTTP报文:HTTP/1.0 200 OK\n\n<html><h1&...
2018-05-15 16:28:11
403
1
原创 Linux_进程间关系及守护进程
进程组/作业/会话1.进程组 每个进程除了有一个进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合。通常,他们与同一个作业相关联,可以接收来自同一终端的各种信号。每个进程组有一个唯一的进程组ID。每个进程组都可以有一个组长进程。组长进程的标识是,其进程组ID等于进程ID。组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要某个进程中一个进程存在,则该进程组就存在,这与组长进...
2018-05-02 15:31:09
164
原创 Linux多线程_死锁
死锁1、死锁产生的原因 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若是无外力作用,他们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 一个简单的例子,哲学家进餐问题。假如有五个哲学家围坐在一张圆桌上思考问题,每个人的左手边和右手边各有一只筷子,当哲学家饿了,会拿起左右两边的筷子进餐,如...
2018-05-02 14:06:02
319
原创 Linux_线程的同步与互斥
线程同步与互斥mutex(互斥量) 大部分线程,线程使用的数据都是局部变量,变量的地址空间在线程空间内,这种情况,变量归属单个线程,其他线程无法获得这种变量。 但有时候,很多变量需要在线程空间内共享,这样的变量称为共享变量,可以通过数据的共享,完成线程之间的交互。 多个线程并发的操作共享变量,会带来一些问题。例如//操作共享变量会有问题的售票代码#include <std...
2018-05-02 13:41:26
153
原创 Linux_线程相关
线程概念什么是线程 在一个程序里的一个执行路线就叫做线程。更确切的来说,“线程是一个进程内部的控制序列” 一切进程至少都有一个执行线程进程和线程 进程是资源竞争的基本单位 线程是程序执行的最小单位 线程共享进程数据,但也拥有自己的一部分数据,例如线程ID,某一组寄存器,线程的函数调用栈,信号屏蔽字,调度优先级等等一进程的多个线程共享 一个进程内可以有多个线程,多...
2018-04-29 16:23:42
120
原创 Linux_父子进程通过消息队列通信
#include <stdio.h>#include <wait.h>#include <stdlib.h>#include <string.h> #include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include &l
2018-04-27 11:40:11
2477
原创 Linux_进程信号
理解信号 1.用户输入命令,在shell下启动一个前台进程 2.用户按下Ctrl-c,这个键盘产生一个硬件中断。 3.如果CPU当前正在执行这个进程的代码,则该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中断 4.终端驱动程序将Ctrl-C解释一个SIGNINT信号,记载该进程的PCB中(也可以说发送了一个SIGNINT信号给该进程)。 5.当某个时...
2018-04-25 15:14:14
243
原创 数据结构_迷宫求解
定义迷宫#include "seqstack.h"#define MAX_ROW 6 //最大行数#define MAX_COL 6 //最大列数typedef struct Maze{ int map[MAX_ROW][MAX_COL];//定义地图}Maze;void MazeInit(Maze* maze){//迷宫求解 int map[MAX_ROW][M...
2018-04-22 23:35:06
400
原创 Linux——进程间通信(消息队列)
消息队列 消息队列提供了一个从一个进程到另一个进程发送一块数据的方法 每个数据块都被认为是有一个类型,接受者进程接受的数据块可以有不同的类型 消息队列也有管道一样的不足,就是每个消息的最大长度是有上限的(MSGMAX),每个消息队列的总的字节数是有上限的(MSGMNB),系统上消息队列的总数也有一个上限(MSGMIN)消息队列在内核中的表示消息队列函数msgget函数:功能:用来...
2018-04-22 23:21:03
127
原创 Linux_进程间通信(管道)
进程间通信进程间通信目的数据传输:一个进程需要将他的数据发送给另一个进程资源共享:多个进程间共享同样的资源通知时间:一个进程需要向另一个进程发送消息,通知他们发生了某种事件(如进程终止时要通知父进程)进程控制:有些进程希望完全控制另一个程序的执行(如debug),此事控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道他的状态改变进程间通信发展管道:System V进程间通信POSIX进...
2018-04-21 23:30:30
218
原创 Linux_文件系统
linux下有很多指令。当我们使用ls -l的时候,可以查看文件的信息,不止有文件名,还有文件元数据。[root@dreame ~]# ls -l总用量 48-rwxr-xr-x 1 root root 8512 3月 30 15:13 a.outdrwxr-xr-x 2 root root 4096 3月 30 15:36 Desktopdrwxr-xr-x 2 root root ...
2018-04-21 21:02:56
149
原创 Linux_系统I/O
C文件I/O中,用到过fopen,fclose,fread,fwrite等函数,这些函数都是C标准库的函数,称之为库函数,这都是已经封装好的。而open,close,read,write,lseek等都属于系统提供的接口,称之为系统调用接口。所以库函数的底层实现,其实还是系统调用,不过库函数开发人员更好使用。接下来就来谈谈系统中文件处理。1.文件描述符fd文件描述符:内核(kernel)利用文件描...
2018-04-21 11:43:28
106
原创 Linux_基础IO
对于I/O,大家应该都不陌生,接触过计算机的同学应当都知道或了解I/O是什么。I/O英文为Input/Output,即输入输出的意思,在计算机上,我们的一台电脑可不是仅仅只有一个显示器,一个主机。还有着键盘啦,鼠标啦,打印机等等,其实这些设备都属于I/O设备,用来和计算机交互信息的,可以把我们想要的数据通过键盘输入进去,也可以通过打印机把我们想要的数据打印出来,这就是I/O。大家在学习C语言的时候...
2018-04-21 10:30:37
116
原创 双向链表基本操作
1.DLinklist.h#pragma once#include <stdio.h>#include <stdlib.h>//构建一个结构体,包含链表的数据,前一个指针及后一个指针typedef char DLinkType;typedef struct DLinkNode { DLinkType data; struct DLinkNod...
2018-04-03 17:55:50
112
原创 单链表的笔试面试题——进阶版
一.判定两个链表是否相交,但是链表可能带环1.分别求两个链表的环的入口2.如果两个链表的不带环,直接使用之前的方式判定相交3.如果一个带环一个不带环,那么直接返回不相交4.如果两个链表都带环a)如果这两个入口点重合,说明相交,并且是环外相交b)如果从一个入口点出发,绕环一周,能到达第二个入口,说明也相交,并且是环上相交c)如果不是上面两种情况,那么也证明不相交int HasCrossWithCyc...
2018-04-03 14:02:32
132
原创 Linux文件系统相关操作
C文件I/O在C语言中,默认会打开三个输入输出流,分别是stdin,stdout,stderr,不难发现,这三个流的类型都是FILE*,通过fopen得到的返回值为文件指针,指向打开的文件#include <stdio.h>#include <string.h>int main(){ FILE* fp = fopen("myfile","w"); i...
2018-03-31 13:05:12
140
原创 单链表常见笔试面试题
定义一个结构体,用来表示链表上的每个节点的类型typedef char LinkTypetypedef struct LinkNode { LinkType data; struct LinkNode* next;} LinkNode;1)逆序打印单链表使用低轨思想,递归出口 head == NULLvoid LinkListReversePrint(LinkNode* he...
2018-03-29 21:38:31
185
原创 Centos7下的github安装和配置以及使用
一、安装gityum install git二、生成ssh密钥ssh-keygen -t rsa -C "your email address"接下来的操作都是回车,直到得到id_rsa和id_rsa.pub文件,然后cd /root/.ssh,发现里面有这两个文件即为成功,否则就是失败,需要重新来过。三、在GitHub上添加自己的密钥打开GitHub,点击头像,下拉菜单里有settings,点击...
2018-03-24 10:18:31
6425
2
原创 Linux入门——进程概念
进程:基本概念:程序的一个执行实例。担当分配系统资源(cpu时间,内存)的实体。PCB(process control block):进程信息存放在PCB中,即进程所有属性的集合都在进程控制块中存放在Linux操作系统下的PCB是:task_struct task_struct是Linux内核的一种数据结构,会被装载在RAM(内存)里并包含着进程的信息。task_struct内容分类标识符:描述本...
2018-03-23 22:46:20
275
原创 Linux入门——进程调度
1.先来先服务(FCFS)(FCFS:first come first served)所有调用算法中最简单的一种,在此调度算法中,所有进程按照请求CPU的先后顺序依次使用CPU,用完之后下一个继续使用,类似于排队购物,队伍最前的人先结账,其他人只能等着,等第一个结束后第二个在结账。算法优点:简单并且好实现,一条队列可以满足要求算法缺点:短进程可能要等待的时间远远大于执行时间2.短作业优先调度算法短...
2018-03-23 11:34:54
143
原创 实现编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。
//从标准输入读取C源代码,并验证所有的花括号都正确的成对出现
2017-11-11 15:05:51
1274
原创 HELLO,21
姓名:邵一飞 性别:男 年龄:21此刻的我,21岁的我,大三的我,一无所成的我。好了,个人介绍到此结束,这大概是我真正意义上接触到正式而又内容丰富而且可学习性如此之高的博客。以前并没有很了解博客是干嘛的,以至于现在惊叹一个博客拥有信息量如此之大,但想到我以后要常驻于此,内心也是很满足的。而今天写下这篇正式的博客,是因为之后将会在代码路上,去而不返。之前两年的小打小闹就放它过去,从现在起我要大步前
2017-11-09 21:26:57
225
1
转载 实例
public class MathTest {public static void main(String[] args) {System.out.println(Math.PI);System.out.println(Math.E);System.out.println(Math.pow(2, 3));System.out.println(Math.sqrt(9));
2017-10-24 23:00:17
131
转载 实例 异常类
//定义的ATM类public class ATM {private String num;//编号private String bankName;//所属银行private String location;//地址private int maxMoney;//最大钱数private int currentMoney;//当前钱数public void setN
2017-10-24 22:59:24
249
转载 来自Java老师上课实例
//定义的ATM类public class ATM {private String num;//编号private String bankName;//所属银行private String location;//地址private int maxMoney;//最大钱数private int currentMoney;//当前钱数public void setNum
2017-10-24 22:57:02
827
转载 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-10-24 22:56:27
101
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人