后端开发
文章平均质量分 86
pianozcl
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HashMap源码解析
前言本篇文章来介绍我们常用的集合类 HashMap,它通过散列函数将数据映射到表中的某个位置,以提升查询速度。其底层用于存放数据的数组也叫散列表所谓散列函数,简单来说就是将一个无限大的集合(在 HashMap 中,key值是一个无限大集合),经过 hash 运算取模,均匀的分布在一个有限的集合(我们定义的哈希表容量,比如长度 16 的数组)我们知道 Java 中的 HashMap 底层是一个数组,数组的每个元素是一个链表或者红黑树。我们也知道它的一些特性,比如允许key、value 可以为原创 2021-01-17 14:18:16 · 277 阅读 · 0 评论 -
Redis源码解析-skiplist跳跃表
前言跳跃表是一种有序数据结构,查找和插入操作的平均时间复杂度都是O(log n)。与常用的自平衡搜索树相比,例如红黑树,跳跃表通过多层链表实现,其结构简单易于实现,其查询删除效率通常堪比红黑树。本篇文章会对跳跃表简要说明,并重点分析Redis跳跃表核心源码其他文章:Redis简单动态字符串SDS源码解析正文1. 跳跃表跳跃表是通过多层有序链表实现的。如下图的有序链表,假设需要查找等于7的元素,必须从头结点(元素为1)依次遍历链表,共经过7次查询比较,找出目标结点。也就是其查询时间复杂度为O(1原创 2020-12-28 23:48:21 · 1685 阅读 · 0 评论 -
ArrayList源码解析
前言在业务场景以及日常开发中,ArrayList往往是最频繁使用的List实现类,这由它的结构以及特性决定。ArrayList顾名思义,其底层是由数组实现,因此查询时间复杂度是常数级别的,再加之有一些小优化,查询速度会更快。由于其底层是数组实现,插入和删除都是O(n)级别的。业务场景往往是多读少写的,因此ArrayList就很适合。下面就来解析ArrayList的源码以及常见方法的实现本篇文章基于JDK8正文1. 成员变量首先看一下它的成员变量DEFAULT_CAPACITY = 10原创 2020-12-10 00:00:29 · 2099 阅读 · 0 评论 -
一分钟彻底掌握Java位运算
前言在阅读源码的时候,经常会碰到位运算,例如Java8中的HashMap部分源码。不同语言有各自的位运算方式,又大同小异。本篇文章带你一分钟彻底掌握Java中的位运算 /** * 这段代码是计算hashcode的,其中的位运算和异或运算是为了降低hash碰撞概率 */ static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCod原创 2020-11-22 18:37:49 · 2174 阅读 · 1 评论 -
Redis源码解析-SDS简单动态字符串
前言SDS是Redis基础数据结构之一,不同于C字符串(以/0结尾,无法保证二进制安全),SDS为Redis定义的一种抽象类型,该类型有诸多优点如获取字符串长度时间复杂度O(1)高效的扩容机制,还能杜绝缓冲区溢出惰性释放空间,减少内存重分配次数以提高性能二进制安全兼容部分C字符串函数正文1. 获取源码自行官网获取,SDS字符串源码主要在sds.c中如下图2. SDS数据结构以下代码是数据结构的定义,可以看到字符串有五种定义。只有第一种结构不一样,下面四种结构类似//sds数原创 2020-11-20 22:34:02 · 2713 阅读 · 0 评论 -
Java获取任意一天当前时间
/** * 获取某一天时间,传+1是明天,-1昨天,-2前天**/public static String getYesterday(int relativelyTime){ SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date=new Date(); Calendar ...原创 2020-05-04 01:24:43 · 379 阅读 · 0 评论 -
使用Docker创建nexus并deploy jar包
1.安装docker(使用环境为Centos7)sudo yum updatesudo yum install dockerdocker -v2.启动docker并设置为开机启动systemctl start dockersystemctl enable docker3.查找nexus镜像docker search nexus4.拉取nexus3镜像,并查看镜像d...原创 2020-04-19 00:03:07 · 336 阅读 · 0 评论 -
list转tree,用于展示层级结构
list转tree,用于展示层级结构部门类定义import java.util.List;/*** 部门类(省略get set方法)**/public class DepartmentVO { /** * 当前部门id */ private String deptId; /** * 父部门id */ private Stri...原创 2020-04-18 22:56:13 · 751 阅读 · 0 评论 -
coursera-dl批量下载,小白都能学会的教程
1.安装python3以上版本,pip尽量较新版本。本人用的版本Python 3.8.2 pip 20.0.2。配置环境变量2.安装:pip3 install coursera-dl3.coursera-dl -u username -p pwd course_name -ca cookie_value说明:username pwd为登录账号密码-ca为名为CAUTH的co...原创 2020-04-13 00:57:51 · 1766 阅读 · 3 评论 -
org.springframework.cloud:spring-cloud-starter-feign:jar is missing
原创 2020-02-01 17:25:25 · 1492 阅读 · 0 评论
分享