自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一次死锁排查过程

merge index 导致死锁

2022-01-18 15:30:12 971

原创 InnoDB 的各种锁

InnoDB 的各种锁脏读: 读到了别的事务回滚前的脏数据(不满足事务的隔离性, 一致性, 原子性)不可重复读: 同一事务执行两次查询值不同(不满足事务的隔离性, 一致性)幻读: 同一事务执行两次相同查询数量不同(不满足事务的隔离性, 一致性)锁大类latch:一般称为闩锁(轻量级别的锁),作用对象是线程,维护缓存(innodb_buffer_pool_instances)中的数据。因为其要求锁定的时间必须非常短。若持续的时间长,则应用的性能会非常差lock:作用对象是事务,用于保

2021-12-22 17:29:45 213

原创 python和java之间对负数存储方式的不同

python和java之间对负数存储方式的不同今天在leetcode上刷题时,发现python对于负数的二进制表示和其他有符号语言不同。计算机如何存储负数负数在计算机中是以补码的形式存在的,最高位是符号位以-4为例 (32位整数)print(bin(-4))# -0b100System.out.println(Integer.toBinaryString(-4)); // 11111111111111111111111111111100当将其他语言的负数表示在python中转化为10进

2021-05-09 09:03:30 193

原创 快存快查,向哈希表致敬

哈希表哈希函数 address = H(key)理想的哈希函数是指能将key尽可能均匀的散布到整个定长数组中。均匀的散布也就意味着极少的哈希冲突构造方法说明适用场景直接寻址法通过线性函数 H(key) = a*key + b 计算地址适用于需要散列的key之间也是线性关系的情况除留余数法通过 H(key) = key % P (P <= 数组长度, 多数会取素数) 计算地址最简单,最常用的方法随机数法通过 H(key) = random(key) 将

2020-11-27 19:08:17 89

原创 一个拉着一个的链表

链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。 节选自百度百科节点: 组成链表的一个个节点例:class Node(object): def __init__(self, e = None, next_node: int = None): # 该节点存储的数据 self.e = e # 指向下一个节点的指针

2020-11-20 15:16:47 80 1

原创 一起数据结构-总纲

说明尽可能的详细的从 实现原理、复杂度、优缺点、注意事项、使用场景、算法应用等方面描述清楚各种常见不常见的数据结构暂不涉及图各数据结构之间的衍生关系数组有限个相同类型的元素组成的集合叫做数组。实现原理: 在计算机内存里通常表现为一块连续的内存空间,一般在数组定义的时候划定好空间时间复杂度: 存取均为 O(1)动态数组动态数组...

2020-11-17 17:47:43 134

原创 简单的动态数组也有小坑哦

动态数组无限个 相同类型 的元素组成的集合叫动态数据。相较于数组动态数组的容量是动态的,不用在创建时声明需要开辟多大的内存空间实现原理动态数组通过扩容和缩容来实现自动分配数组容量的操作。扩容: 当开辟的数组容量满并且还要插入元素的时候,就开辟一个容量为原来数组两倍(这里两倍是大多数语言都采用的数值,并不一定必须两倍)的新数组并将旧数组的数据移动至新数组。这种操作被称之为数组的扩容缩容:当取出元素之后数组中的元素占据不足当前容量的一半时, 会开辟一个为当前数组容量一半的新数组并将原数组元

2020-11-17 17:41:34 112

原创 JAVA虚拟机内存是怎么管的

内存怎么管?JVM 内存模型程序计数器`(Program Counter Register)`Java虚拟机栈`(Java Virtual Machine Stack)`本地方法栈`(Native M ethod Stacks)`Java堆`(Java Heap 或 GC Heap`方法区`(Method Area)`运行时常量池`(Runtime Constant Pool)`直接内存`(Direct Memory)`JVM 垃圾回收概述简单回收策略(按照方法和线程的生命周期回收整个区域)Java堆内存回

2020-10-21 11:54:28 146 1

原创 ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

异常在contos6.9的机器上通过pyenv安装Python 3.7 的时候报错如下:原因打开提示的网址,发现在centos6上提供的openssl 版本太低,原文如下:网址:https://github.com/pyenv/pyenv/wiki/Common-build-problems解决手工更新OpenSSL到1.0.2:-> 参考:http://www.loser0...

2019-08-20 13:45:37 4785

原创 centos 6安装 mysql 8.x

MySQL8默认的认证插件是caching_sha2_password,很多客户端都不支持,可将默认的认证插件修改为mysql_native_password,在配置文件中配置default_authentication_plugin=mysql_native_password。登陆mysql 之后为了安全考虑,尽量不要用root 账户开通远程连接,通常的做法是新建一个权限有限的账户开通远程连接。下载地址: https://downloads.mysql.com/archives/community/

2019-05-27 17:13:21 1022

原创 selenium入门实战 - 实现微博动态监控(Python)【一】

编写简单的Python脚本实现微博新动态的实时监控运行环境搭建流程设计详细设计loginparser_weibo_info& refresh执行一下总结运行环境搭建Python3.6 运行环境Chrome浏览器 和 对应的selenium驱动 博主找到国内的驱动镜像源地址: https://npm.taobao.org/mirrors/chromedriver/这里一定要注意驱动...

2019-05-19 13:23:05 839

原创 Python实现二叉堆-Binary Heap

本篇文章将简要解释什么是二叉堆以及二叉堆的Python实现什么是二叉堆(binary heap)实现思路(以最大堆为例)通过上浮操作来向堆中新增元素通过下沉操作来取出堆中元素数据结构设计&封装实现什么是二叉堆(binary heap)二叉堆是一种满足特殊性质的二叉树。具有以下性质:二叉堆是一颗完全二叉树(除叶子节点以外其余节点的左右孩子都不为空)所有节点的值都大于等于(最大堆)孩...

2019-05-16 19:47:20 1045 1

原创 详解Python列表推导(list comprehension)

本文将介绍列表推导的优势、底层原理和注意事项列表推导的优势列表推导快速的原因列表推导的局限列表推导的优势列表推导的优势有两点一是语法简洁,例如:l1 = [i for i in range(10)]l2 = []for i in range(10): l2.append(i)print(l1 == l2) # 输出:True上面例子中l1采用列表推导生成,l2使用常规的P...

2019-05-14 16:24:47 587

原创 猴子都能看懂的迭代器、生成器、可迭代对象解析(python)

通过官方文档让你看的懂看的对,真正了解迭代器、生成器、可迭代对象迭代器、生成器、可迭代对象、迭代器协议Demo 实现python3.6中的range方法改进:使用生成器代替上述代码中的迭代器类总结迭代器、生成器、可迭代对象、迭代器协议先说好这篇文章是根据python3.6 写出来的,其他语言博主不清楚是否和Python一样迭代器协议在Python3.6的文档(4.5. Iterator T...

2019-05-08 19:36:38 162

原创 破解云锁服务器安全软件的反爬机制(python)

啥是云锁云锁其实是个服务器安全软件,主业也不是反爬虫,不过有一条是可以防止cc攻击,而爬虫行为就像是频次不高的cc攻击,因而直接请求目标站并不能返回目标内容。最近正好做了个需求抓取http://www.landchina.com/ 上的一些信息,这个网站刚好就使用了云锁。云锁如何反爬虫也没有多高明,无非就是常用的:封禁高频IP放个cookie第一个好解决,自己做个高匿代理池就行这...

2019-05-07 19:54:12 4134 3

原创 Python实现字典树-Trie

本篇文章将解释什么是字典树以及字典树的Python实现什么是字典树(Trie)节点设计数据结构设计实现什么是字典树(Trie)字典树是一种树型数据结构,通常用来存储大量字符串。字典树的每个节点通常都为一个字符。从根节点的第一个孩子节点开始到可以作为字符串结尾的节点的路径就是Trie所存储的字符串,这种存储方式带来的好处就是Trie的时间复杂度和存储字符串的数据量无关只与查询的字符串长度有关,这...

2019-05-06 20:05:44 1193 1

空空如也

空空如也

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

TA关注的人

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