自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 用户从属性文件中读取文件夹,指定关键字,统计出指定文件夹下面指定的关键字中,出现次数最多的关键字

用户从属性文件中读取文件夹,指定关键字,统计出指定文件夹下面指定的关键字中,出现次数最多的关键字

2021-04-18 17:35:16 265

原创 文件和配置文件的读写

配置文件和普通文件的读写的常用方法

2021-04-18 09:02:34 158

原创 Java中的IO流

流流:在java数据中所有数据都是使用流读写的。流是一种有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两个设备间的传输成为流,流的本质是数据传输。1.按照流向分:输入流,输出流2.按照处理数据的单位分:字节流(8位的字节);字符流(16位的字节)输入输出流输入就是将数据从各种输入设备(包括文件,键盘等)中读取到内存中。输出是将数据写入到各种输出设备(比如文件,显示器,磁盘等)。文件既可以作为输入设备,又可以作为输出设备。文件:在外设硬盘上面保存数据得一种方式。文

2021-04-17 22:19:32 3964 1

原创 内核态和用户态

CPU的两种工作状态:内核态(管态)和用户态(目态)内核态:1.系统中既有操作系统的程序,也有普通用户程序。为了安全性和稳定性,操作系统的程序不能随便访问,这就是内核态。即需要执行操作系统程序就必须转换到内核态才能执行。2.内核态可以使用计算机所有的硬件资源。用户态:不能直接使用系统资源,也不能改变CPU的工作状态,并且只能访问这个用户程序自己的存储空间。三种从“用户态”转换到“内核态”的最主要(触发)方式:a.系统调用(用户进程主动发起的):这是用户态进程“主动”要求切换到内核态的一种方式,用

2020-11-23 08:49:05 253

原创 unordered_map和map的区别

相同点1.都是C++标准库提供的关联式容器。2.存放的元素都是K-V键值对,并且Key是不能重复的。区别1.需要引入的头文件不同map: #include unordered_map: #include <unordered_map>2.内部实现机理不同map: 红黑树 具有自动排序的功能,是非严格的二叉搜索树。map内部的所有元素都是有序的,使用中序遍历可将键值按照从小到大遍历出来。unordered_map: 哈希表(也叫散列表,通过关键码值映射到Hash表中一个位置来访

2020-10-25 12:09:58 13253

原创 Linux的4种锁机制

互斥锁 读写锁 自旋锁 RCU

2020-10-24 15:51:52 894 1

原创 进程vs线程

基本概念:进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发;线程是操作系统可识别的最小执行和调度单位。每个线程都独自占用一个虚拟处理器:独自的寄存器组,指令计数器和处理器状态。每个线程完成不同的任务,但是共享同一地址空间(也就是同样的动态内存,映射文件,目标代码等等),打开的文件队列和其他内核资源。区别:1.一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线

2020-10-12 14:10:55 186

原创 浅谈https和http状态码

SSL协议:为网络通信提供安全及数据完整性的一种协议。SSL协议建立在可靠的传输协议(如TCP)之上,在TCP连接后,实际数据传输之前,通讯双方通过身份认证以及加密传输实现整体的安全传输。采用了对称加密和非对称加密的混合加密方式完成。对称加密:加密和解密用同一种密钥(密钥交换容易被监听)非对称加密:加密使用一对非对称的密钥(私有密钥,共有密钥)对称密钥vs非对称密钥对称密钥解密速度快,失去加密意义;非对称密钥不容易破解,更安全,解密速度效率低;混合加密机制:采用非对称加密过程保护对称密钥的加

2020-10-12 13:59:04 647 1

原创 网络层(IP,ICMP),数据链路层(以太网协议)

网络层(IP协议,ICMP)数据链路层(以太网协议)

2020-10-06 17:29:44 4547

原创 TCP/IP五层模型

TCP/IP五层模型

2020-10-06 08:56:17 167

原创 Cookie,Session,Token的区别

Cookie,Session,Token

2020-09-22 18:31:51 314

原创 搜索一个url网址会经历哪些过程

1.浏览器只要发送HTTP请求,接收HTTP响应,然后进行渲染,展示到界面。2.HTTP底层走的是TCP/IP,如果不知道IP,就需要DNS协议进行解析。3.TCP链接后收发HTTP数据包。4.为了降低服务器压力,加速访问速度,有很多缓存,比如,客户端缓存,CDN缓存,负载均衡缓存等。第一步,浏览器输入域名第二步:浏览器查找域名的IP地址–DNS协议1.查找浏览器缓存:因为浏览器一般会缓存DNS记录一段时间,不同浏览器的时间可能不一样,一般2-30分钟不等,浏览器去查找这些缓存,如果有缓存,直接

2020-09-22 17:00:04 10901

原创 Linux 基本操作命令以及 gcc/g++,makefile文件,gdb,git等常用工具

一.基本操作命令ls 查看目录中的文件cd /home 进入 ‘/ home’ 目录;cd … 返回上一级目录;cd …/… 返回上两级目录mkdir dir1 创建一个叫做 ‘dir1’ 的目录rmdir dir1 删除一个叫做 ‘dir1’ 的目录 (只能删除空目录)rm -f file1 删除一个叫做 ‘file1’ 的文件’,-f 参数,忽略不存在的文件,从不给出提示。rm -rf /mulu 目录下面文件以及子目录下文件cp /test1/file1 /test3/file2

2020-09-19 18:24:42 328

原创 UDP&TCP(传输层)

UDP&TCP(传输层)

2020-08-16 21:12:55 599

原创 数据库基础--索引,事务

数据库索引,事务

2020-08-08 16:45:10 839

原创 项目-在线OJ(Linux)

**在线OJ**一.需求二.前后台流程梳理三.模块划分四.需求细分五.模块需求划分六.技术支持七.项目扩展

2020-07-26 17:43:36 829

原创 http协议--超文本传输协议(应用层)

一.自定制协议二.HTTP协议(超文本传输协议)三.HTTP协议格式四.简单的HTTP服务器五.HTTP和HTTPS的区别以及HTTPS的优缺点

2020-07-03 18:11:48 933

原创 线程概念,线程和进程的区别,线程安全

线程的概念 以及 线程vs进程线程控制,线程创建线程终止,线程等待线程分离可重入VS线程安全

2020-03-17 21:40:38 279

原创 GZIP思想的文件压缩工具

压缩数据的概念为什么要进行压缩压缩的分类ZIP压缩的历史GZIP压缩算法的原理项目测试huffman树的缺陷及改进(范式haffman树)huffman与LZ77结合及改进项目改进

2020-03-12 12:29:12 415

原创 GZIP中哈夫曼思想

Huffman树的构建,利用huffman编码对源文件进行压缩和解压缩

2020-03-10 13:44:31 473

原创 GZIP中的LZ77压缩算法

什么是LZ77压缩算法?ZIP中的LZ77思想LZ77压缩和解压缩介绍

2020-03-09 01:56:22 1670

原创 求两个字符串的最长子串并输出

求两个字符串的最长子串并输出“ADOBE”; “ABE”;对于这两个字符串,先标记相同字符的在矩阵中为1否则为0:ADOBEA10000B00010E00001那么公共子串即为对角线为1的,比如‘A’、‘BE’,只需在其中找到最长的1的对角线即可,这里我们可以把对角线(i, j)表示为1+(i-1, j-1),来达...

2019-11-28 19:38:42 961

原创 C++中的继承

C++中的继承1.继承的概念及定义2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.继承与友元6.继承与静态成员7.复杂的菱形继承及零星虚拟继承1.继承的概念及定义1.概念使代码可以复用的手段(继承是类设计层次的复用)允许程序员在保持原有类特性的基础上进行扩展,增加功能,产生新的类,称为派生类。2.定义1.定义格式class [派生类]:[继承...

2019-11-04 19:17:25 336

原创 list(带头结点的双向循环链表)的详细介绍

一.list的介绍及使用1.list是什么?1.list可以在常数范围内在任意位置进行插入和删除的序列,并且该容器可以前后双向迭代。2.list的底层是双向链表结构。3.list和forward_list非常相似,forward_list是单链表,只能朝前迭代。4.与其他容器相比,list通常在任意位置进行插入,移除元素的执行效率更好。缺陷是不支持任意位置的随机访问。二.接口介绍1....

2019-10-30 10:35:37 738

原创 模板初阶

【本节目标】1.泛型编程2.函数模板3.类模板1.泛型模板泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。分类:函数模板和类模板2.函数模板2.1概念:函数模板代表了一个函数家族,该模板与类型无关,在使用时被参数化,根据实参类型产生函数的待定类型版本。2.2格式:template<typename T1,typename T2...,ty...

2019-09-29 10:20:11 156

原创 C/C++内存管理

1.C/C++内存分布【说明】1.栈又叫堆栈,向下增长:非静态局部变量/函数参数/返回值…2.内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程通信。3.堆用于程序运行时动态内存分配,堆是向上增长。4.数据段-存储全局变量和静态数据。5.代码段-可执行的代码/只读常量。2.C语言的动态内存管理方式2.1...

2019-09-27 12:20:29 191

原创 类和对象(下)

1.static成员概念:static的类成员称为类的静态成员;static修饰的成员变量,称为静态成员变量,static修饰的成员函数,称为静态成员函数。静态成员变量一定要在类外进行初始化。(初始化不用加static)//实现一个类,计算程序中创建出了多少个类对象class Date{public: Date(int year, int month, int day) :_...

2019-09-22 15:12:06 284

原创 类和对象(中)

1.构造函数5.如果类中没有显示定义构造函数7.编译器生成的默认构造函数(无参并且里面是随机值)有什么作用?编译器生成默认的构造函数会对自定义类型成员_t调用的它的默认成员函数。class Time{public: Time(int hour=0, int minute=0,int second = 0) {  cout << ...

2019-09-20 20:08:50 124

原创 类和对象(上)

1.类和对象的初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象,关注的是对象,将一件事情拆分成不同的对象,靠对象之间交互完成。2.类的引入C语言中,结构体只能定义变量,C++中,结构体内不仅能定义变量,也能定义函数。class Student{public: //成员方法||行为 void SetStudentInf...

2019-09-17 23:00:54 209

原创 C++入门基础

1.C++关键字C语言有32个关键字。C++有63个关键字。2.命名空间1>.作用:对标识符的名称进行本地化,避免命名冲突或名字污染。2>.定义:定义命名空间,需要使用namespace关键字,后面跟命名空间的名字,然后接一对{ }即可,{ }中即为命名空间的成员。2.2.1a.普通的命名空间命名空间中的内容,既可以定义变量,也可以定义函数b.命名空间可以嵌套c.同一...

2019-09-15 20:04:31 362

原创 二叉树

一.二叉树的创建【需要一个前序遍历,并且每个左右孩子都有标志,空用#代替。如:ABD##E#H##CF##G##】#define ENDTAG '#'typedef char BTDataType;typedef struct BinaryTreeNode{ BTDataType _data; struct BinaryTreeNode *_left; struct Binar...

2019-07-27 16:39:29 197

原创 带头双向循环链表增删操作以及 相关习题

带头双向链表增删操作:https://github.com/uniquefairty/Data-Structure-/tree/master/List.c1,将两个有序链表合并为一个新的有序链表并返回,新链表是通过拼接给定的两个链表的所有结点组成的。思路:定义两个指针分别指向两个链表,比较结点中的数据,进行前插操作。如果指向list2的指针先走到尽头,则证明已经合并。如果指向list的指针...

2019-07-21 17:16:13 225

原创 单链表的基本操作(二)练习题

1.反转一个单链表方法一:不断的进行后删,前插操作。void reaversal(SListNode **pphead)//不断后删前插操作{ SListNode *head = *pphead;//此指针在每次循环中始终指向当前链表的头 SListNode *oldp = head;//此指针在每次循环中始终指向原本的头节点,不会改变方向 SListNode *tmp = head-...

2019-07-20 23:03:39 383

原创 单链表的基本操作(一(无头单向非循环链表增删查改实现)

单链表的基本操作(无头单向非循环链表增删查改实现)SeqList.h文件:#ifndef _SLIST_H_#define _SLIST_H_#include<stdio.h>#include<Windows.h>typedef int SLTDataType;typedef struct SListNode{ SLTDataType data; str...

2019-07-18 21:28:22 410

原创 水仙花数(判断一个数的位数)

水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数:153 = 1^3 + 5^3 + 3^3。370 = 3^3 + 7^3 + 0^3。371 = 3^3 + 7^3 + 1^3。...

2019-07-16 21:57:08 681

原创 菱形打印*C语言

* *** ***** **************** ******* ***** *** *#include<stdio.h>#include<Windows.h>void p1(int n){ int i, j; for (i = 1; i <= n; i++) {#if ...

2019-07-16 21:45:57 119

原创 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。

用flag标签控制正负#include<stdio.h>#include<Windows.h>//计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。int main(){ int i = 0; int flag = 1; double sum = 0; for (i = 1; i < 100; i++) { ...

2019-07-16 20:43:36 205

原创 通讯录实战

普通版本contact.h文件#ifndef _CONTACT_H_#define _CONTACT_H_#include<stdio.h>#include<Windows.h>#include<stdlib.h>#include<string.h>#include<assert.h>enum Oper{ EXI...

2019-07-14 19:37:14 688

原创 自定义类型:结构体,枚举,联合

结构体类型创建一,有名结构体两种定义方式1)定义类型的同时,完成了变量的定义struct Student{ char name[100]; char sex; int age; float score;}stu1;//声明类型的同时定义变量stu1struct Student stu2;//定义结构体变量stu22)现有类型,再定义变量struct Student...

2019-07-02 10:52:35 309

原创 strtok函数

strtok函数:分解字符串为一组字符串。s为要分解的字符,sep为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分割符)。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。char *strtok(char *str, const char *sep);例如:strtok(“abc,def,ghi”,","),最后可以分割成为abc def ghi.1)第...

2019-06-28 18:19:22 1414

空空如也

空空如也

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

TA关注的人

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