自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Maoning Guan的博客

Following your heart.

  • 博客(123)
  • 资源 (4)

原创 正则表达式全集

字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。串行“\\”匹配“\”而“\(”则匹配“(”。^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。$匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。*匹配前面的子表达式零次或多次。例如,...

2020-09-03 16:10:37 31

原创 数据库基础知识——SELECT 语句(排序检索数据)

SQL使用SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured Query Language)的缩写。SQL是一种专门用来与数据库通信的语言。SQL 语言特点:SQL 语言不区分大小写;在命令行窗口的 SQL 语句要以分号 ; 结束。为了下面的展示,我们创建了 crashcourse 数据库:CREATE DATABASE crashcourse DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;crash

2020-09-02 20:31:50 17

原创 数据库基础知识——SELECT 语句(检索数据)

SQL使用SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured Query Language)的缩写。SQL是一种专门用来与数据库通信的语言。SQL 语言特点:SQL 语言不区分大小写;在命令行窗口的 SQL 语句要以分号 ; 结束。其中 SELECT 语句是我们最常用的。为了下面的展示,我们创建了 crashcourse 数据库:CREATE DATABASE crashcourse DEFAULT CHARACTER SET utf8 COLLATE ut

2020-09-02 19:43:48 26

原创 数据库基础知识——MySQL连接、数据库的创建、选择、展示和表的创建

MySQL简介MySQL数据的所有存储、检索、管理和处理实际上是由数据库软件——DBMS(数据库管理系统)完成的。MySQL是一种DBMS,即它是一种数据库软件。

2020-09-02 16:39:50 31

原创 数据库基础知识——数据库基础概念和名词术语

数据库基础概念数据库数据库(database) 是保存有组织的数据的容器(通常是一个文件或一组文件)。理解数据库的一种最简单的办法是将其想象为一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是什么以及如何组织的。数据库软件数据库软件应称为DBMS(数据库管理系统)。数据库是通过DBMS创建和操纵的容器。表在你将资料放入自己的文件柜时,并不是随便将它们扔进某个抽屉就完事了,而是在文件柜中创建文件,然后将相关的资料放入特定的文件中。在数据库领域中,这种文件称为表。表是一种结构化的文件,可用

2020-09-02 15:41:55 40

原创 计算机网络 - 传输层

一、传输层为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。UDP和 TCP的特点1. UDP用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于

2020-08-31 22:52:41 16

原创 Linux基础知识——文件

一、文件(一)文件属性用户分为三种:文件拥有者、群组以及其它人,对不同的用户有不同的文件权限。使用 ls 查看一个文件时,会显示一个文件的信息,例如 drwxr-xr-x 3 root root 17 May 6 00:14 .config,对这个信息的解释如下:drwxr-xr-x:文件类型以及权限,第 1 位为文件类型字段,后 9 位为文件权限字段3:链接数root:文件拥有者root:所属群组17:文件大小May 6 00:14:文件最后被修改的时间.config:文件名常见

2020-08-30 21:55:48 35

原创 Linux基础知识——文件系统

一、文件系统分区与文件系统我们对磁盘进行分区完毕后,还需要进行格式化(format),对分区进行格式化是为了在分区上建立文件系统,即把分区格式化成为一个文件系统。一个分区通常只能格式化为一个文件系统,但是磁盘阵列等技术可以将一个分区格式化为多个文件系统,也可以把多个分区格式化为一个文件系统。而且,每种操作系统能够使用的文件系统并不相同,举例来说:Windows系统的文件系统:FAT / FAT16(windows 98 以前),NTFS (windows 2000 以后)Linux系统的文件系

2020-08-30 17:00:27 61

原创 Linux基础知识——常用操作以及概念

前言在面试中,Linux 知识点相对于网络和操作系统等知识点而言不是那么重要,只需要重点掌握一些原理和命令即可。为了方便大家准备面试,在此先将一些比较重要的知识点列出来:能简单使用 cat,grep,cut 等命令进行一些操作;文件系统相关的原理,inode 和 block 等概念,数据恢复;硬链接与软链接;进程管理相关,僵尸进程与孤儿进程,SIGCHLD 。...

2020-08-29 18:28:24 43

原创 计算机操作系统——存储管理

一、地址空间1)定义:地址空间为程序创造了一种抽象的内存。地址空间是一个进程可用于寻址内存的一套地址集合。每个进程都有一个自己的地址空间,并且这个地址空间独立于其他进程的地址空间(除了在一些特殊情况下进程需要共享它们的地址空间外)。2)基址寄存器与界限寄存器:当一个进程运行时,程序的起始物理地址装载到基址寄存器中,程序的长度装载到界限寄存器中。每次一个进程访问内存,取一条指令,读或写一个数据字,CPU硬件会在把地址发送到内存总线前,自 动把基址值加到进程发出的地址值上。同时,它检查程序提供的地址是

2020-08-27 21:57:35 48

转载 Python 各种集合内置方法的时间复杂度

转载来源:https://blog.csdn.net/Baoli1008/article/details/48059623Python内置方法的时间复杂度本文翻译自Python Wiki本文基于GPL v2协议,转载请保留此协议。本页面涵盖了Python中若干方法的时间复杂度(或者叫“大欧”,“Big O”)。该时间复杂度的计算基于当前(译注:至少是2011年之前)的CPython实现。其他Python的实现(包括老版本或者尚在开发的CPython实现)可能会在性能表现上有些许小小的差异,但一般不超

2020-08-25 10:13:50 112

原创 计算机操作系统——死锁

一、死锁的定义大部分死锁都和资源相关,资源分为两类:可抢占的和不可抢占的:可抢占资源(preemptable resource)可以从拥有它的进程中抢占而不会产生任何副作用,存储器就是一类可抢占的资源。不可抢占资源(nonpreemptable resource)是指在不引起相关的计算失败的情况下,无法把它从占有它的进程处抢占过来。总的来说,死锁和不可抢占资源有关,有关可抢占资源的潜在死锁通常可以通过在进程之间重新分配资 源而化解。所以,我们的重点放在不可抢占资源上。死锁的规范定义如下:

2020-08-24 21:28:49 49

转载 线程同步机制

线程同步机制一、互斥量(mutex)互斥量本质上是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁以后,任何其它试图再次对互斥量加锁的线程将会被阻塞直到当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所有在该互斥锁上的阻塞线程都会变成可运行状态,第一个变为运行状态的线程可以对互斥量加锁,其它线程将会看到互斥锁依然被锁住,只能回去再次等待它重新变为可用。在这种情况下,每次只有一个线程可以向前执行。二、信号量(semaphore)互斥量只能用于一个资源的互

2020-08-23 21:14:33 28

原创 进程管理、同步和通信

1、进程的定义进程实体由程序段、相关的数据段和PCB(进程控制块)三部分构成。进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。例如:在电脑中,一个正在运行的软件应用可以视作一个进程,如:微信客户端、QQ、网易云音乐等2、进程控制块(Process Control Block, PCB)的作用:作为独立运行基本单位的标志能实现间断性运行方式提供进程管理所需要的信息提供进程调度所需要的信息实现与其他进程的同步与通信参考文献:进程和线程基础知识全家桶,30 张图一套带

2020-08-02 21:24:20 55

原创 秋招总结:遇到的手撕代码题

跟谁学一面:求连续子数组的最大和(力扣 53)【思路:力扣系列略,题解区都比我讲得好】二面:翻转字符串中的每个单词(简单题,比较常见,没去找对应的原题)【思路:遍历字符串,每找到一个单词就把它翻转一下,空格跳过】字节x面:不使用除法实现除自身外数组元素的乘积(力扣 238)【思路:力扣系列略,题解区都比我讲得好】x面:实现NMS【思路:略,目标检测的相关基础】一面:k个一组翻转链表(力扣 25)【思路:力扣系列略,题解区都比我讲得好】拼多多一面:给n个标签和位置的pair,位置表示

2020-09-18 22:11:16 9

原创 运用递归解决树的问题

基于递归解决树的问题我们知道可以利用递归求解树的遍历。 递归是解决树的相关问题最有效和最常用的方法之一。我们知道,树可以以递归的方式定义为一个节点(根节点),它包括一个值和一个指向其他节点指针的列表。 递归是树的特性之一。 因此,许多树问题可以通过递归的方式来解决。对于每个递归层级,我们只能关注单个节点内的问题,并通过递归调用函数来解决其子节点问题。通常,我们可以通过 “自顶向下” 或 “自底向上” 的递归来解决树问题。1. “自顶向下” 的解决方案“自顶向下” 意味着在每个递归层级,我们将首先

2020-09-10 21:58:01 33

原创 146. LRU缓存机制

146. LRU缓存机制题目描述运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留

2020-09-07 16:11:23 19

原创 MySQL——锁

锁一、原因开发多用户、数据库驱动的应用时,最大的一个难点是:一方面要最大程度地利用数据库的并发访问,另外一方面还要确保每个用户能以一致的方式读取和修改数据。数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性。二、lock 与 latch的比较三、InnoDB存储引擎中的锁1. 行级锁的类型InnoDB存储引擎实现了以下两种标准的行级锁:共享锁(S Lock),允许事务读一行数据;排他锁(X Lock),允许事务删除或更新一行数据。如果一个事务T1已经获得了行

2020-09-06 19:45:49 23

原创 MySQL——InnoDB和MyISAM存储引擎的区别

InnoDB: MySQL默认的事务型引擎,也是最重要和使用最广泛的存储引擎。它被设计成为大量的短期事务,短期事务大部分情况下是正常提交的,很少被回滚。InnoDB的性能与自动崩溃恢复的特性,使得它在非事务存储需求中也很流行。除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎。MyISAM: 在MySQL 5.1 及之前的版本,MyISAM是默认引擎。MyISAM提供的大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM并不支持事务以及行级锁,而且一个毫无疑问的缺

2020-09-05 16:58:08 27

原创 MySQL体系结构和存储引擎

MySQL数据库一、数据库基础概念1. 数据库数据库(database) 是保存有组织的数据的容器(通常是一个文件或一组文件)。理解数据库的一种最简单的办法是将其想象为一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是什么以及如何组织的。2. 数据库软件数据库软件应称为DBMS(数据库管理系统),如 MySQL。数据库是通过DBMS创建和操纵的容器。二、MySQL体系结构MySQL由以下几部分组成:连接池组件管理服务和工具组件SQL接口组件查询分析器组件优化器组件缓冲(

2020-09-05 16:23:06 31

原创 数据库基础知识——用正则表达式进行搜索(使用技巧)

使用MySQL正则表达式为了下面的展示,我们创建了 crashcourse 数据库:CREATE DATABASE crashcourse DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;crashcourse 是我自己设置的数据库的名称,下面的使用示例,都是使用这个数据库。为了下面的展示,我们还需要为 crashcourse 数据库创建一些表和往表中插入一些记录, 相关的 SQL 文件有:创建表:create.sql插入数据:popul

2020-09-03 17:09:29 30

原创 数据库基础知识——用正则表达式进行搜索

使用MySQL正则表达式为了下面的展示,我们创建了 crashcourse 数据库:CREATE DATABASE crashcourse DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;crashcourse 是我自己设置的数据库的名称,下面的使用示例,都是使用这个数据库。为了下面的展示,我们还需要为 crashcourse 数据库创建一些表和往表中插入一些记录, 相关的 SQL 文件有:创建表:create.sql插入数据:popul

2020-09-03 16:39:12 20

转载 计算机网络——HTTP

转载来源:CS-Notes/notes/HTTP一 、基础概念URIURI 包含 URL 和 URN。请求和响应报文1. 请求报文2. 响应报文二、HTTP 方法客户端发送的 请求报文 第一行为请求行,包含了方法字段。GET获取资源当前网络请求中,绝大部分使用的是 GET 方法。HEAD获取报文首部和 GET 方法类似,但是不返回报文实体主体部分。主要用于确认 URL 的有效性以及资源更新的日期时间等。POST传输实体主体POST 主要用来传输数

2020-09-01 21:33:10 18

原创 计算机网络体系结构

计算机网络体系结构1. 五层协议应用层 :为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。传输层 :为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。网络层 :为主机提

2020-08-31 21:40:18 17

原创 Linux基础知识——进程管理

进程管理查看进程1. ps查看某个时间点的进程信息。示例:查看自己的进程# ps -l示例:查看系统所有进程# ps aux示例:查看特定的进程# ps aux | grep threadx2. pstree查看进程树。示例:查看所有进程树# pstree -A3. top实时显示进程信息。示例:两秒钟刷新一次# top -d 24. netstat查看占用端口的进程示例:查看特定端口的进程# netstat -anp | grep port进程状态

2020-08-31 20:12:48 18

原创 Linux基础知识——Bash

Bash可以通过 Shell 请求内核提供服务,Bash 正是 Shell 的一种。特性命令历史:记录使用过的命令命令与文件补全:快捷键:tab命名别名:例如 ll 是 ls -al 的别名shell scripts通配符:例如 ls -l /usr/bin/X* 列出 /usr/bin 下面所有以 X 开头的文件变量操作对一个变量赋值直接使用 =。对变量取用需要在变量前加上 $ ,也可以用 ${} 的形式;输出变量使用 echo 命令。$ x=abc$ echo $x$ e

2020-08-31 19:53:34 24

原创 Linux基础知识——压缩与打包

压缩与打包压缩文件名Linux 底下有很多压缩文件名,常见的如下:扩展名压缩程序*.Zcompress*.zipzip*.gzgzip*.bz2bzip2*.xzxz*.tartar 程序打包的数据,没有经过压缩*.tar.gztar 程序打包的文件,经过 gzip 的压缩*.tar.bz2tar 程序打包的文件,经过 bzip2 的压缩*.tar.xztar 程序打包的文件,经过 xz 的压缩压缩指令1.

2020-08-31 19:43:51 22

转载 RAM、ROM和硬盘的区别

转载来源:https://www.jianshu.com/p/3d0b3af6cc59RAM、ROM和硬盘的总结很久就对存储相关的介质感兴趣,一直不清楚电脑里的存储介质,比如:硬盘,光盘,内存,缓存都是什么?手机上的内存和存储又是什么?U盘又是什么介质?这些都困扰着我,重点是我还是嵌入式的,这就很尴尬了。。。计算机的存储器分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。RAM计算机内存储器有两种型号:ROM和RAM。ROM表示的是只读存储器,即:

2020-08-28 20:11:25 36

原创 算法与数据结构——二叉树遍历

一、二叉树:1. 二叉树的遍历方式:深度优先搜索(DFS):先序遍历、中序遍历、后序遍历往往利用 递归 或者 栈 来实现广度优先搜索(BDF):层序遍历(即按层遍历)往往利用 队列 实现...

2020-08-27 15:55:38 40

原创 算法时间复杂度大小排序

算法时间复杂度大小排序:

2020-08-24 15:19:45 52

原创 1. 两数之和

题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[**0**] + nums[**1**] = 2 + 7 = 9所以返回 [**0, 1**]Python 3代码实现:class Solution: def twoSum(self,

2020-07-27 19:52:01 34

转载 Linux环境下MySQL数据库的使用

Linux环境下MySQL数据库的使用:MySQL命令行基本操作:启动MySQL服务可以使用下面的命令来启动MySQL。service mysqld start在CentOS 7中,更推荐使用下面的命令来启动MySQL。systemctl start mysqld启动MySQL成功后,可以通过下面的命令来检查网络端口使用情况,MySQL默认使用3306端口。netstat -ntlp | grep mysql也可以使用下面的命令查找是否有名为mysqld的进程。pgrep my

2020-07-19 15:50:49 153

转载 Python 中的编码与解码

转载来源:https://zhuanlan.zhihu.com/p/382932671、一些基本的概念比特 / bit:计算机中最小的数据单位,是单个的二进制数值 0 或 1字节 / byte:计算机存储数据的单元,1 个字节由 8 个比特组成字符:人类能够识别的符号编码:将人类可识别的字符转换为机器可识别的字节码 / 字节序列解码:编码的反向过程叫解码概述:Unicode 是人类可识别的字符格式;ASCII 、UTF-8 、GBK 等都是机器可识别的字节码格式。我们写在文件中的 py3 代

2020-07-16 18:17:56 75

原创 Python 3中 r‘‘, b‘‘, u‘‘, f‘‘ 的含义和编解码问题

字符串前加 r"r"的作用是去除转义字符.即如果是“\n”那么表示一个反斜杠字符,一个字母n,而不是表示换行了。 print('test\n') print(r'test\n')输出:字符串前加 fimport timet0 = time.time()time.sleep(1)name = 'processing' # 以 f开头表示在字符串内支持大括号内的python 表达print(f'{name} done in {time.time() - t0:.2f}

2020-07-16 18:08:58 122

原创 用Python实现微信自动回复消息

问题描述:有时候,我们需要设置微信根据接收到的消息来进行自动回复。现在,大多数的方法是基于itchat模块来实现的,itchat模块是基于网页版微信接口来实现的,但是现在很多微信都被禁止登陆网页版微信了,所以大部分微信现在使用不了于itchat模块。解决方法:对PC微信客户端进行Hook逆向分析,Hook到微信消息,然后与Python程序进行交互,在Python程序中实现微信消息自动回复的逻辑。开源代码和使用教程链接如下:PC微信Hook逆向程序:Hook到微信消息,然后与Python程序进行

2020-07-16 15:05:26 234

转载 Python多线程编程——资源共享

转载来源:https://github.com/jackfrued/Python-100-Days/blob/master/Day01-15%2F13.%E8%BF%9B%E7%A8%8B%E5%92%8C%E7%BA%BF%E7%A8%8B.md问题描述:因为多个线程可以共享进程的内存空间,因此要实现多个线程间的通信相对简单,大家能想到的最直接的办法就是设置一个全局变量,多个线程共享这个全局变量即可。但是当多个线程共享同一个变量(我们通常称之为“资源”)的时候,很有可能产生不可控的结果从而导致程序失效

2020-07-15 23:22:16 42

原创 Python的多线程与多进程编程示例

使用示例:多进程:from multiprocessing import Processfrom os import getpidfrom random import randintfrom time import time, sleepdef download_task(filename): print('启动下载进程,进程号[%d].' % getpid()) print('开始下载%s...' % filename) time_to_download = ran

2020-07-15 22:38:38 36

原创 向Python类和函数传递不同的参数的区别

实验目的Python中没有指针,但是我们可以探究:1、分别向Python的类传递list,数值,类对象三种参数,然后改变原始参数,观察类参数的值是否会一起发生变化;2、分别向Python的函数传递list,数值,类对象三种参数,然后在函数内部改变参数,观察函数外部原始参数的值是否会一起发生变化;实验代码:class A(object): def __init__(self, parameter): self.test = parameterdef set_to_No

2020-07-15 21:35:59 113

原创 Python的re模块的match和fullmatch方法的区别

Python的re模块的match和fullmatch方法的区别:match(pattern, string, flags=0) 用正则表达式匹配字符串 成功返回匹配对象 否则返回Nonefullmatch(pattern, string, flags=0) ,是match函数的完全匹配(从字符串开头到结尾)版本换言之,match从字符串开头开始匹配,匹配到目标的字符串即可成功返回(这个要跟search区分开,search不要求从头开始匹配);import reqq = '18267552

2020-07-15 15:28:13 216

原创 在Windows系统中设置git ssh代理

文章来源:在Windows系统中设置git ssh代理

2020-07-15 10:57:15 44

Sublime Text3

Sublime Text3绿色版,由于Subline Text在安装package control中会遇到各种问题,而无法成功安装,所以直接在此上传已经安装好package control的安装包,解压到对应的文件夹即可使用。

2018-04-11

语音识别系统代码

语音识别系统的代码,MATLAB版本,该语音识别系统可以实现说话人的语音识别功能,同时也可以实现识别不同的单词。

2017-09-09

libsvm工具箱(libsvm-3.22版)

libsvm工具箱(libsvm-3.22版),已经包含了matlab数据集heart_scale.mat。该工具箱为用C++编写的代码,使用前要在MATLAB中调用C++编译器进行编译(如Visual Studio 2013)。

2017-09-04

JDK_API_1_6_zh_CN(中文)

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。通过JavaAPI有利于Java新手快速入门并深入学习。

2016-02-12

空空如也

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