自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一只菜鸟的博客

我好菜呀

  • 博客(36)
  • 收藏
  • 关注

转载 数据库锁

数据库锁分类和总结 原创 ...

2020-04-10 22:46:03 240

原创 二叉树前序、中序、后序递归非递归

前序class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None#递归class Solution: #递归 def __init__(self): self.res = [] ...

2020-03-15 17:36:18 173

原创 Mysql面试问题总结

1. 什么是存储过程,存储过程有什么优缺点?  存储过程时一组为了完成特定功能的SQL语句集,经过编译后存储在数据库。用户通过指定存储过程的名字并给出参数来执行它。优点:①提高数据库的执行速度②当对数据库进行复杂操作时,比如对多个表进行增删改查,可将此复杂操作用存储过程封装起来与数据库提供的事务一同使用。③可以重读使用,减少数据库开发人员的工作量,安全性能高。缺点: 复杂、不便于调试、...

2020-03-13 00:47:32 982

原创 数据库锁

数据库锁的概念锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用之外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。锁的分类从数据操作的类型分:读锁和写锁;读锁(...

2020-03-12 09:47:00 165

转载 MYsql中为啥使用B+树存储结构?

问:数据库中最常见的慢查询优化方式是什么?同学A:加索引。问:为什么加索引能优化慢查询?同学A:...不知道同学B:因为索引其实就是一种优化查询的数据结构,比如Mysql中的索引是用B+...

2020-03-12 09:46:34 485

原创 mysql---查询优化

1.小表驱动大表2. Order by 关键字优化order by 子句尽量使用Index方式排序,避免使用FileSort方式排序;尽可能在索引列上完成排序操作,遵循索引键的最佳左前缀;如果不在索引列上,filesort有两种算法:双路排序和单路排序双路排序的字面意思是两次扫描磁盘,最终得到数据,先扫描列表的行列进行排序,在扫描已经排序好的列表;在磁盘去排序字段,在bu...

2020-03-11 10:53:52 136

原创 Mysql---索引优化

mqsql性能下降,SQL慢,执行时间长,等待时间长的原因:查询语句写的烂索引失效单值复合关联查询要多join(设计缺陷或不得已的需求)服务器调优及各个参数设置(缓冲、线程数等)索引MYSQL官方对索引的定义为:索引Index是帮助Mysql搞笑获取数据的数据结构。可以得到索引的本质:索引是数据结构。索引的目的在于提高查询效率,可以类似于字典。可以简单的理解为‘排好序的快速...

2020-03-10 23:20:47 102

转载 Get和Post两种基本请求方法的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。 当你在面试中被问到这个问题,你的内心充...

2020-02-23 20:17:03 221

原创 leetcode刷题:剪绳子

leetcode 剪绳子算法题:给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]xk[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。解法一:递归先定义函数f(n)为把绳子剪成若干段之后的各段长度之...

2020-02-23 18:08:55 468

转载 浏览器输入url后经历的过程(详细)

一般会经历以下几个过程:1、首先,在浏览器地址栏中输入url2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。3、在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址。4、浏览器向服务器发起tcp连接,与浏览器建立...

2020-02-18 22:13:05 2921

转载 DNS解析、 域名系统DNS

DNS是为各种网络应用(例如:web浏览器或者邮件阅读器)提供的一种核心服务,即名字服务,用来把计算机的名字转换为对应的IP地址。域名系统初识在网络层为了更高效的查找转发地址,使用等长的32位IP地址来标志一台主机而不是不等长的主机名(因为机器处理等长的数字比处理等长的字符串更高效)。在应用层为了便于用户记忆,更多的是使用主机名字。早期ARPANET时代,整个网络只有百台计算机,那个时候使用...

2020-02-18 22:09:46 738

转载 IP地址、MAC地址以及端口号

...

2020-02-18 20:56:33 6014

原创 python中贪婪与非贪婪

Python里数量词默认是贪婪的(在少数语言里默认非贪婪),总是尝试匹配尽可能多的字符,非贪婪则相反,总是尝试尽可能少的字符。在 “*”, “?”, “+”,"{m,n}" 后面加上?,便贪婪变成非贪婪。贪婪:"""1.导入模块2.通过match方法,验证正则3.判断、验证是否成功4.如果成功,获取匹配的结果"""# 1.导入模块import re# 2.通过match方法,...

2020-02-14 12:26:39 530

原创 进程以及状态

进程与线程进程是资源分配的最小单元,也是线程的容器。同一个进程可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进程至少包括一个线程。进程结束后,进程中的拥有的线程都将销毁,但是线程的结束不会影响同一个进程中的其他线程的结束。一个程序运行起来后,代码+用到的资源称之为进程,他是操作系统分配资源的基本单元,但是线程是CPU调度的基本单元。进程的状态:run运行状态:...

2020-01-11 21:06:19 228

原创 总结:进程、线程和协程

概念进程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单元。每个进程都有自己的独立的内存空间,不同进程通过进程间通信来通信。由于进程比较重量,占据独立的内存,所以上下文切换间的进程开销(栈、寄存器、虚拟内存、文件句柄等)比较大,但相对比较安全稳定。线程线程是进程的一个实体,是CPU调度和分派的基本单元,他是比进程更小的能独立运行的基本单...

2020-01-11 21:02:59 328

原创 协程的理解以及python实现协程

协程协程协程是一种比线程更加轻量级的存在,正如一个进程可以拥有多个线程一样,一个线程可以拥有多个协程。协程不是被操作系统内核管理,而是完全由程序所控制。线程和进程的操作是由程序触发系统接口,最后的执行者是系统,协程的操作是程序员。意义:对于多线程的应用,CPU通过切片的方式来切换协程之间的执行,线程之间的切换需要耗时(保存状态,下次继续)。协程则只使用一个线程(单线程),在一个线程...

2020-01-11 11:44:48 240

原创 迭代器和生成器

迭代器可迭代对象可迭代对象:凡是可做作用于for循环的对象都是可迭代对象比如:list、dict、str、tuple等都是可迭代对象可以使用collections中Iterable判断是否为可迭代from collections import Iterableret= isinstance(判断元素 ,Iterable)迭代器我们分析对可迭代对象进行迭代使用的过程,发现每迭代...

2020-01-10 20:36:48 179

转载 Web页面请求的完整历程

详细总结:Web页面请求的完整历程 写在前面学完计算机网络的协议栈,对Web页面请求的完成历程做一次总结。想象一下,当我们在浏览器上输入一个URL地址,到页面呈现出来的过程中,网络上都发生了什么?这个过程绝对很有趣。现在假设我在校园网内,通过有线接入校园网的一台交换机,开始我的冲浪之旅。下面我将描述自己在...

2020-01-09 11:31:42 1116

原创 python实现多线程TCP服务器框架

python实现TCP服务器框架的步骤导入模块创建套接字设置地址可以重用绑定端口设置监听,套接字由主动变为被动接收客户端连接接受客户端发送的信息解码数据并输出关闭和当前客户端的连接# 1.导入模块import socketimport threadingdef recv_msg(new_tcp_socket, ip_port): """ 接受信...

2020-01-09 10:52:38 2384

原创 python实现多任务、线程、线程锁

线程线程概念线程,可以简单的理解为是程序执行的一条分支,也是程序执行流的最小单元。线程是被系统独立调度和分派的基本单元,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但他可与同属一个进程的其他线程共享进程所拥有的全部资源。主线程:当一个程序启动时,就有一个进程被操作系统(OS)创建,与此同时一个线程也立刻运行,该线程通常叫做程序的主线程,简而言之,程序启动就会创建一个主线程。...

2020-01-08 21:40:28 454

原创 python模拟简单浏览器以及Web服务器

1.模拟浏览器"""1. 导入模块2. 创捷套接字3. 建立连接4. 拼接请求协议5. 发送请求协议6. 接收服务器响应内容7. 保存内容8. 关闭连接"""# 1. 导入模块import socket# 2. 创捷套接字tcp_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 3. 建立连接...

2020-01-08 14:18:41 628

原创 网络基础知识

IP地址与域名IP地址IP地址是网络中计算机的唯一标识,点分十进制构成IPV4和IPV6域名Doman name因为网络通信需要使用ip地址,但是ip地址不容易记忆,所以才有了更好记忆的域名特殊域名:localhostDNS及浏览器请求服务器的过程浏览器—>输入网址—>本地DNS服务器查询ip—>远程DNS服务器—>建立TCP连接...

2020-01-07 19:13:08 160

原创 python实现 socket套接字---UDP&TCP

Socketsocket简称套接字,是支持TCP/IP的网络通信的基本操作单元,可以看作是不同主机之间的进程进行双向通信的端点,简单的说就是通信两方的一种约定,用套接字的相关函数来完成通信过程。UDPUDP是面向无连接、基于数据报的不可靠传输。python中UDP发送端传输的步骤为:导入模块创捷套接字数据传输关闭套接字代码如下:# 1. 导入模块import socke...

2020-01-07 12:46:23 639

原创 计算机网络---应用层

概述应用层协议:规定应用进程在通信时所遵循的协议;应用协议大部分都是基于客户端服务器方式,客户服务器都是指通信中所涉及的两个应用进程。客户服务器所描述的是进程之间服务与被服务的关系,客户就是服务请求方;服务器:服务提供方域名系统DNS域名系统是因特网使用的命名系统,用来把便于人们使用的机器名字转换成IP地址,DNS 是一个分布式数据库,提供主机名和IP地址之间相互转换的服务,这里的分...

2020-01-02 16:17:34 322

原创 Python中多重继承

多重继承和方法解析顺序python支持多继承的,下面看一个多继承的例子:class A: def ping(self): print('ping:',self)class B(A): def pong(self): print('pong:',self) class C(A): def pong(self): ...

2019-12-29 21:54:20 4049

原创 Python中的接口类和抽象类

Python中的接口和协议Python语言中没有interface关键词,而且除了抽象基类,每个类都有接口:类实现或继承的公开属性(方法或数据属性)。接口:接口只是定义了一些方法,而没有去实现,多用于程序设计时,只是设计需要有什么样的功能,但是并没有实现任何功能,这些功能需要被另一个类(B)继承后,由 类B去实现其中的某个功能或全部功能。在python中接口由抽象类和抽象方法去实现,接口是...

2019-12-29 19:47:15 923

原创 计算机网络----运输层TCP、UDP协议

概述运输层是整个网络层体系机构中的关键词层次之一,网络层只是把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。运输层是向他上面的应用层提供通信服务,它属于面向通信的最高层,当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有主机的协议栈才有传输层,传输层提供了进程间的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之...

2019-12-29 12:38:18 693

原创 计算机网络----网络层IP协议

概述网络层计算机网络结构中最重要的一层,也是互联网的核心,多个网络通过路由器互连成一个互联网路,网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务,网络层中一个重要的协议就是IP协议,使用IP协议可以把异构的物理网络连接起来,使得网络层看起来像是一个统一的网络。网际协议IP是TCP/IP协议中两个最主要的协议之一,也是最重要的因特网标准协议之一,与IP协议配套使用的还有四个协议:...

2019-12-28 20:50:29 1140

原创 计算机网络——数据链路层PPP、CSMA/CD协议

基础数据链路层属于计算机网络的低层,数据链路层使用的信道的类型有以下两种:(1)点对点通信:这种信道使用一对一的点对点通信方式(2)广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂,广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。下图表示数据从主机H1传送到主机H2需要在路径中的各结点的协议栈向上和向下流动多次:如果只考虑数据链路层:数据...

2019-12-28 14:23:40 4675 1

原创 流畅的python读书笔记--对象引用可变性以及垃圾回收

函数参数Python唯一支持的参数传递模式是共享传参,共享传参指函数的各个形式参数获得实参中各个引用的副本,也就是说,函数内部的形参是实参的别名。结果就是,函数可能会修改作为参数传入的可变参数,但是无法修改那些对象的标识,即不能把一个对象替换成另一个对象。1. 函数可能会修改接收到的任何可变对象>>> def f(a, b):... a += b... return a...

2019-12-18 09:09:08 110

原创 流畅的python读书笔记-装饰器与闭包

装饰器基础知识装饰器是可调用的对象,其参数是另一个函数(被装饰的函数),装饰器可能会处理被装饰的函数,然后把他返回,或者将其替换成另一个函数或可调用对象。函数额装饰器用在源码中‘标记’函数,想要完全掌握装饰器,必须要先理解闭包。闭包是指在函数内部在定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包,简单的说,就是如果在一个内部函数里,对在外部作用域(但不是...

2019-12-18 09:08:08 115

原创 Latex 快捷键总结

Latex论文写作-Texsdudio 快捷键总结The keyboard shortcuts can be modified at Options -> Shortcuts.The following list is a rough overview of the defaults keyboard shortcuts. Depending on the operating syste...

2019-09-30 09:44:53 10778

原创 Latex中导入VISIO图片

Latex中导入Visio图片Latex中导入Visio图片时不能直接将visio的保存成png格式,这样导入到latex中的图片会失真,应该导入pdf格式或者eps格式,如果时latex编辑器就导入eps格式,如果是pdfLatex就导入pdf格式,下面分别介绍两种方法。以及将图片导入到latex文件中的指令1.导入.pdf格式的图片(1)visio中图片画好之后,点击‘文件’ -----...

2019-09-28 10:06:47 9991 3

原创 数据结构与算法python语言实现 Michael T.Goodrich- Chapter3&Chapter4课后习题

R3.1画出四个图形import numpy as npimport matplotlib.pyplot as pltimport matha = plt.subplot(1,1,1)x = np.arange(10,200,5)y2 =[4*m*math.log(m,2)for m in x]#这里b表示blue,g表示green,r表示red,-表示连接线,--表示虚线链接a...

2019-09-21 20:21:24 753

原创 python中二位数组的创建、遍历、以及添加元素

以leetcode上一道二维数组的题目为例:给定一个矩阵,输出其转置矩阵方法一:class Solution: def transpose(self, A: List[List[int]]) -> List[List[int]]: Row = len(A)#二维数组中一位列表的个数 Col = len(A[0])#每个列表的个数 ...

2019-08-15 14:05:44 7838

原创 虚拟机ubantu连不上网

虚拟机ubantu突然连不上网,setting的network显示:没有WiFi显示试了很多种方法没能解决,最后简简单单一个操作搞定1.挂起虚拟机2.点击左上角workstation-edit-虚拟网络编辑器点击vmnet8(1)点击更改设置(2)还原默认设置重新开启ubantu,联网问题解决。...

2019-05-28 21:46:59 519

空空如也

空空如也

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

TA关注的人

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