自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java正则表达式

正则表达式底层实现package regexp01;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @author Mustang * @create 2022-05-24 9:08 * <p> * 分析java正则表达式的底层实现 */public class RegExp01 { public static void main(String[] args) {

2022-05-25 20:18:25 357

原创 码农常用10种算法

码农常用10种算法二分查找算法(非递归)查看前面笔记:查找算法中的非递归二分查找分治算法分治算法介绍分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……分治算法可以求解的一些经典问题二分搜索大整数乘法棋盘覆盖合并排序快速排序线性时间选择

2022-05-22 14:27:58 375

原创 图结构的学习

图图基本介绍为什么要有图前面我们学了线性表和树线性表局限于一个直接前驱和一个直接后继的关系树也只能有一个直接前驱也就是父节点当我们需要表示多对多的关系时, 这里我们就用到了图图的举例说明图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。 结点也可以称为顶点。如图:图的常用概念图的表示方式图的表示方式有两种:二维数组表示(邻接矩阵);链表表示(邻接表)。邻接矩阵是表示图形中顶点之间相邻关系的矩阵,对于n个顶点的图而言,矩阵的row和col表示的是

2022-05-18 12:19:45 590

转载 多路查找树

二叉树与B树二叉树的问题分析二叉树的操作效率较高,但是也存在问题, 请看下面的二叉树二叉树需要加载到内存的,如果二叉树的节点少,没有什么问题,但是如果二叉树的节点很多(比如1亿), 就存在如下问题:问题1:在构建二叉树时,需要多次进行i/o操作(海量数据存在数据库或文件中),节点海量,构建二叉树时,速度有影响问题2:节点海量,也会造成二叉树的高度很大,会降低操作速度.多叉树在二叉树中,每个节点有数据项,最多有两个子节点。如果允许每个节点可以有更多的数据项和更多的子节点,就是多叉树(mu

2022-05-17 22:59:04 140

原创 树结构应用学习

树结构应用赫夫曼树基本介绍给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近。赫夫曼树几个重要概念和举例说明路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1结点的权及带权路径长度:若将树中结点赋给一个有

2022-05-17 21:15:06 814

原创 树结构基础

树结构基础为什么需要树这种数据结构数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低链式存储方式的分析优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可, 删除效率也很好)。缺点:在进行检索时,效率仍然较低,比如(检索某个值,需要从头节点开始遍历)树存储方式的分析能提高数据存储,读取的效率, 比如利用二叉排序树(Bina

2022-05-17 09:32:09 122

原创 哈希表的学习

哈希表哈希表介绍:散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。如下图:比如:111 % 15 = 15,那么111这个数字就放在索引15的位置提高访问速度的方法:google公司的一个上机题:有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,名字,住址…),当输入该员工的id时,要

2022-05-16 20:33:42 144

原创 查找算法的学习

查找算法在java中,常用的查找有四种:顺序(线性)查找二分查找/折半查找插值查找斐波那契查找线性查找线性查找就是顺序查找有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值。如果查找到全部符合条件的值,则全部返回代码实现:package com.atguigu.search;import java.util.ArrayList;import java.util.List;/*

2022-05-16 12:33:05 206

原创 8大排序算法

排序算法排序算法的介绍排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类:内部排序: 指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。常见的排序算法分类(8类)算法的时间复杂度度量一个程序(算法)执行时间的两种方法:事后统计的方法。这种方法可行, 但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二是所得时间的统计量依赖

2022-05-12 21:32:29 152

原创 递归的学习

递归概念递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。递归也有缺点,就是占用额外的空间,层数深的话效率也会变低递归调用机制递归能解决什么样的问题各种数学问题如: 8皇后问题 , 汉诺塔, 阶乘问题, 迷宫问题, 球和篮子的问题(google编程大赛)各种算法中也会使用到递归,比如快排,归并排序,二分查找,分治算法等.将用栈解决的问题–>第归代码比较简洁递归需要遵守的重要规则执行一个方法时,就创建一个新的受保护的独立

2022-05-10 09:59:37 314

原创 【栈】实现逆波兰计算器

栈栈的一个实际需求:请输入一个表达式计算式:[722-5+1-5+3-3] 点击计算【如下图】请问: 计算机底层是如何运算得到结果的? 注意不是简单的把算式列出运算,因为我们看这个算式 7 * 2 * 2 - 5, 但是计算机怎么理解这个算式的(对计算机而言,它接收到的就是一个字符串),我们讨论的是这个问题 -> 栈栈的介绍栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的

2022-05-09 13:27:35 663

原创 链表的学习

链表链表(Linked List)介绍链表是有序的列表,但是它在内存中是存储如下:小结:链表是以节点的方式来存储,是链式存储每个节点包含 data 域, next 域:指向下一个节点.如上图:发现链表的各个节点不一定是连续存储.链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定单链表(带头结点) 逻辑结构示意图如下:单链表应用实例使用带头head的单向链表实现 –水浒英雄排行榜管理完成对英雄人物的增删改查操作第一种方法在添加英雄时,直接添加到链表的尾部第二种方

2022-05-07 20:15:22 451

原创 数组,链表模拟队列

队列队列介绍队列是一个有序列表,可以用数组或是链表来实现。遵循先进先出的原则。即:先存进队列的数据,要先取出。后存入的要后取出示意图:(使用数组模拟队列示意图)数组模拟队列队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如上图, 其中 maxSize 是该队列的最大容量。因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front及 rear分别记录队列前后端的下标,front 会随着数据输出而改变,而 rear则是随着数据输入而改变队列操作:入

2022-05-07 20:06:38 426

原创 稀疏数组压缩文件大小

稀疏数组实际需求编写的五子棋程序中,有存盘退出和续上盘的功能分析问题因为该二维数组的很多值是默认值0, 因此记录了很多没有意义的数据,占用了太多的存储空间 ->稀疏数组可以解决这个问题基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组,减少占用的存储空间。稀疏数组的处理方法是:记录二维数组中一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模如下图:应用实例使用稀疏数组,来保留类似

2022-05-07 13:18:01 116

原创 Java面向对象编程总结-思维导图

2021-08-20 21:59:50 118

原创 java数组中涉及到的常见算法

1.数组元素的赋值(杨辉三角、回形数等)使用二维数组打印一个 10 行杨辉三角。11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 11 9 36 84 126 126 84 36 9 1【提示】第一行有 1 个元素, 第 n 行有 n 个元素每一行的第一个元素和最后一个元素都是 1从第三行开始, 对于非第一个元素和最后一个元素的元

2021-08-02 17:33:34 136

原创 JDK_JRE_JVM的三者关系及Java运行过程

jdk包含jre和开发工具集,而jre又包含jvm和java标准类库JDK(Java Development Kit Java开发工具包)JDK是提供给Java开发人员使用的,包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。例如编译工具javac.exe,打包工具 jar.exe等。JRE(Java Runtime Environment Java运行环境)包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如

2021-07-25 21:59:07 649 2

原创 Pandas

pandas的常用数据类型1.Series 一维,带标签数组2.DataFrame 二维,Series容器pandas之Series创建import pandas as pdimport numpy as npimport stringIn [28]: s = pd.Series(np.arange(10),index=list(string.ascii_uppercase[:10])) # index行标签In [29]: sOut[29]:A 0B 1C 2

2020-12-30 15:18:25 397

原创 数据分析matplotlib&numpy

一、数据绘图matplotlibmatplotlib:最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建官网:https://matplotlib.org/绘制折线图matplotlib基本要点每个红色的点是坐标,把5个点的坐标连接成一条线,组成了一个折线图。那么到底如何把它通过代码画出来呢?在使用绘图的时候应该还要考虑下面的要点:1.设置图片大小(想要一个高清无码大图)2.保存到本地3.描述信息,比如x轴和y轴表示什么,这个图表示什么4

2020-12-30 15:11:37 984

原创 Python spiders基础学习笔记

爬虫简介什么是爬虫:通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。爬虫的价值:实际应用就业爬虫究竟是合法还是违法的?在法律中是不被禁止具有违法风险善意爬虫 恶意爬虫爬虫带来的风险可以体现在如下2方面:爬虫干扰了被访问网站的正常运营爬虫抓取了收到法律保护的特定类型的数据或信息如何在使用编写爬虫的过程中避免进入局子的厄运呢?时常的优化自己的程序,避免干扰被访问网站的正常运行在使用,传播爬取到的数据时,审查抓取到的内容,如果发现了涉及到用户隐私,商业机密

2020-12-15 15:47:14 2762

原创 Scrapy学习笔记

scrapy初识什么是框架?所谓的框架简单通用解释就是就是一个具有很强通用性并且集成了很多功能的项目模板,该模板可被应用在不同的项目需求中。也可被视为是一个项目的半成品。如何学习框架?对于刚接触编程或者初级程序员来讲,对于一个新的框架,只需要掌握该框架的作用及其各个功能的使用和应用即可,对于框架的底层实现和原理,在逐步进阶的过程中在慢慢深入即可。什么是scrapy?Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。其内部已经被集成了各种

2020-12-14 20:27:17 2736

原创 jQuery-v3.4.1

jQueryjQuery介绍1.jQuery是一个轻量级的、兼容多浏览器的JavaScript库。2.jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:“Write less, do more.“jQuery的优势一款轻量级的JS框架。jQuery核心js文件才几十kb,不会影响页面加载速度。丰富的DOM选择器,jQuery的选择器用起来很方便,比如要找到某个DOM对象的相邻元

2020-11-30 20:24:10 1648

原创 licecap免费+轻量+使用简单的录屏制作gif工具

licecap官网下载地址

2020-11-28 23:08:11 113

原创 BOM、DOM基础

基本概念JavaScript分为 ECMAScript,DOM,BOM。BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:windo

2020-11-21 22:02:27 151

原创 非专业前端工程师使用的js

JavaScript概述ECMAScript和JavaScript的关系1996年11月,JavaScript的创造者------Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,

2020-11-19 23:33:59 138

原创 非专业前端工程师使用的CSS

CSS介绍CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素,给HTML设置样式,让它更加美观。当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)。CSS语法CSS实例每个CSS样式由两个组成部分:选择器和声明。声明又包括属性和属性值。每个声明之后用分号结束。CSS注释/*这是注释*/CSS的几种引入方式行内样式行内样式是在标记的style属性中设定CSS样式。不推荐大规模使用。<p style="color: red

2020-11-18 21:38:40 248

原创 html5简介及常用标签

HTML介绍Web服务本质# python自制服务器socket通信端import socketsk = socket.socket()sk.bind(("127.0.0.1", 9008))sk.listen(5)while True: conn, addr = sk.accept() data = conn.recv(1024) print(data) # b'GET / HTTP/1.1\r\nHost: 127.0.0.1:9008\r\nConnec

2020-11-14 21:48:51 674

原创 python PyMySQL模块

数据库的安装和连接PyMySQL的安装pip3 install PyMySQLpython连接数据库import pymysqldb = pymysql.connect("数据库ip","用户","密码","数据库" ) # 打开数据库连接cursor.execute("SELECT VERSION()") # 使用 execute() 方法执行 SQL 查询,cursor是游标,就是当前在表中所执行到的位置。就像光标一样,光标所在的位置就是下一次将要插

2020-11-12 15:41:30 178

原创 python 并发编程---协程

协程介绍协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。一句话说明什么是协程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。需要强调的是:#1. python的线程属于内核级别的,即由操作系统控制调度(如单线程遇到io或执行时间过长就会被迫交出cpu执行权限,切换其他线程运行)#2. 单线程内开启协程,一旦遇到io,就会从应用程序级别(而非操作系统)控制切换,以此来提升效率(!!!非io操作的切换与效率无关)对比操作系统控制线程的切换,用户在单线程内控制协程

2020-11-11 21:25:40 122

原创 python 并发编程---线程

操作系统线程理论线程概念的引入背景进程前面我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。这是这样的设计,大大提高了CPU的利用率。进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出

2020-11-10 21:28:26 197

原创 python并发编程---进程

理论知识操作系统背景知识顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。所以想要真正了解进程,必须事先了解操作系统,操作系统介绍PS:即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力。将一个单独的cpu变成多个虚拟的cpu(多道技术:时间多路复用和空间多路复用+硬件上支持隔离),没有进程的抽象,现代计算

2020-11-10 21:22:23 407

原创 python---网络编程

一、 socket五层通讯流程但实际上从传输层开始以及以下,都是操作系统帮咱们完成的,下面的各种包头封装的过程,用咱们去一个一个做么?NO!Socket又称为套接字,它是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。当我们使用不同的协议进行通信时就得使用不同的接口,还得处理不同协议的各种细节,这就增加

2020-11-08 20:55:08 418

原创 python3 异常处理

一,异常和错误part1:程序中难免出现错误,而错误分成两种1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正)#语法错误示范一if#语法错误示范二def test: pass#语法错误示范三print(haha2.逻辑错误#用户输入不完整(比如输入为空)或者输入非法(输入不是数字)num=input(">>: ")int(num)#无法完成计算res1=1/0res2=1+'str'part2:什么是异常异常就

2020-10-27 16:48:37 116

原创 Python3 面向对象进阶

一、反射1 什么是反射反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。2 python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射)四个可以实现自省的函数,下列方法适用于类和对象(一切皆对象,类本身也是一个对象)# hasattrdef ha

2020-10-27 16:47:55 116

原创 Python3 面向对象基础2

面向对象的三大特性一、继承1.1 什么是继承继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类python中类的继承分为:单继承和多继承class ParentClass1: #定义父类 passclass ParentClass2: #定义父类 passclass SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClass pass

2020-10-27 16:47:14 188

原创 Python3 面向对象基础1

一. 面向对象初识面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。优点是:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可。缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身。应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等。面向对象的程序设计优点是:解决了程序的扩展性。对某一个对象单独修改,会立刻反映到

2020-10-27 16:43:00 311 2

原创 阿里云ACA认证证书

2020-10-24 21:40:34 1106

转载 linux:/etc/sysctl.conf 内核配置参数分析

https://blog.csdn.net/mengzhisuoliu/article/details/49644533

2020-10-08 18:00:42 148

原创 阿里云ECS7天训练营进阶班day02---基于ECS快速搭建Docker环境

基于ECS快速搭建Docker环境背景知识容器技术容器是一个允许我们在资源隔离的过程中,运行应用程序和其依赖项的 、轻量的 、操作系统级别的虚拟化技术, 运行应用程序所需的所有必要组件都打包为单个镜像,这个镜像是可以重复使用的。当镜像运行时,它是运行在独立的环境中,并不会和其他的应用共享主机操作系统的内存、CPU或磁盘。这保证了容器内的进程不会影响到容器外的任何进程。DockerDocker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Li

2020-09-24 20:39:28 382

原创 ECS 7天训练营进阶班day01---基于ECS搭建FTP服务

CRT远程连接ECS服务器安装vsftpd运行以下命令安装vsftpd。 yum install -y vsftpd运行以下命令设置FTP服务开机自启动。systemctl enable vsftpd.service启动FTP服务systemctl start vsftpd.service运行以下命令查看FTP服务监听的端口。[root@iZuf6exgi8yqdln5f103l7Z ~]# netstat -antup | grep ftptcp6 ..

2020-09-23 21:22:17 91

空空如也

空空如也

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

TA关注的人

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