5 vant10

尚未进行身份认证

还有很多事要做,怎能就此停滞不前。

等级
TA的排名 10w+

《Redis深度历险》读书笔记

文章目录1. Redis 的用途2. 字符串的实现3. 列表list3.1. quicklist4. 字典hash4.1. rehash5. 对象的过期时间6. 应用:分布式锁7. 应用:限流(zset,漏斗限流)8. 使用标准结构存储的阈值9. Redis分布式与CAP定理10. Sentinel11. 集群11.1. Codis11.2. Redis-Cluster的实现12. Info详解1...

2019-10-08 10:38:08

《Redis设计与实现》读书笔记

文章目录1. 基本对象2. 底层数据结构3. 对象3.1. 字符串对象3.1.1. int3.1.2. embstr3.1.3. raw3.2. 列表对象3.3. 哈希对象3.4. 集合对象3.5. 有序集合对象3.6. 对象共享4. SDS (simple dynamic string)5. linkedlist6. hashtable7. intset7.1. 升级8. 压缩列表(ziplis...

2019-10-07 12:44:25

https的连接过程及数字证书详解

文章目录1. 概述2. 数据证书3. 连接过程3.1. 过程概括3.2. 具体过程4. 参考资料4.1. 推荐资料1. 概述https是http+SSL(TLS)的结合体,SSL(现在升级为TLS了)是一种独立的协议,可以与其它协议结合在一起。https采用了非对称加密+对称加密结合的方式来工作,因为非对称加密速度慢,所以先利用非对称加密来传输对称加密的密钥,然后再使用对称加密的方式传输。在s...

2019-09-02 19:01:57

openjdk11源码从编译到clion调试

1. 概述先声明环境:Ubuntu18安装并配置好JDK11(openjdk version “11.0.1” 2018-10-16)Clion2019.2可以在docker里面编译,利用ubuntu的镜像,然后安装相关依赖也不会影响到宿主机。2. 下载OpenJDK11其实我们搜索openjdk进入到jdk11特性列表页面时,左边有个Mercurial链接,从那就可以进入源码列...

2019-08-30 14:56:59

全排列算法本质与实现

本质解决全排列问题本质是:二分法。将某个数组的全排列看成是由第0个元素与其后所有元素的全排列组成。做法是每次只需要挑选某个元素作为当前排列的第0个元素,然后剩下的变成子问题递归来解决。原理设一个数组的长度为n,则其全排列的个数为n!个。设f(n)代表对于一个n长度数组的全排列,array(n)代表数组中的第n个元素,+代表拼接。f(n) = array(1 to n) + f(n -...

2019-08-25 16:35:16

剑指offer-二维数组查找题解-本质与实现

概述从左下开始找。本质是利用:有序序列中最小的元素比target(目标元素)大,那么target必然不在此序列中。因此也可以从右上找。题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。原理从左下开始找。左下的那个元素m有如下性质:这一...

2019-08-24 15:35:25

剑指offer-重建二叉树-Java版题解

概述本题来自牛客网-剑指offer在线测评原理与实现思想:二分、递归关键是:利用前序序列根节点在前找到根节点,用根节点去中序序列划分成两部分,左部分是左子树,右部分是右子树。再利用子树长度去前序序列把前序序列中的左右子树找出来,同时可以找出根节点。递归进行此步骤,如果子树长度为0,则不需要生成子问题。class TreeNode { int val; TreeNode l...

2019-08-23 09:53:17

如何打乱一个数组--数组shuffle实现及常见错误

定义打乱:对于一个数,它随机跟其它位置或其本身位置交换定义一个数组的打乱:数组中每一个数都被打乱成为数组的打乱import java.util.Random;/** * 参考自Java Collection源码 * 定义打乱:对于一个数,它随机跟其它位置或其本身位置交换 * 定义一个数组的打乱:数组中每一个数都被打乱成为数组的打乱 */class Shuffle { pu...

2019-08-22 19:29:31

快速排序的原理及其实现(C++及Java版)浅析

快速排序原理基于二分的思想,先随机选定一个基准数(比如最左边的),然后从一个指针从最右边找比基准数小的数,一个指针从最左边找比基准数大的数,然后两数交换位置,重复找并交换的过程,最终在两个指正相碰时,该位置就是基准数在最终排好序时的结果,将基准数和该位置上的数交换位置,即可。然后根据基准数的位置二分,在两边依次使用快速排序。终止条件:划分到只有1或0个元素时即可终止。为什么该位置是基准数在最...

2019-08-20 14:46:45

Java通过注解实现一个接口--利用反射与代理

概述传统实现接口的方式需要implement才行,通过注解实现一个接口可以减轻每次都要implement的繁琐。本文实现一个Demo来展示如何通过注解实现一个接口。Codeimport java.lang.annotation.Annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Re...

2019-07-21 16:43:32

wireshark过滤器语法全面解析

本文全面介绍了wireshark过滤器语法,wireshark包括捕获过滤器和显示过滤器,其中显示过滤器的语法十分丰富,其实显示过滤器的语法可以简单概括为:基本数据类型,协议对象,比较运算符,结合运算符,字符串函数与正则表达式,这就是其所有语法。其中高级的用法也许是切片、集合、正则表达式。本文重点在于全面的描述其基本语法,通过例子来学习,那些复杂的用法其实都来自这些基本的语法元素

2019-07-21 09:51:24

层序遍历时划分每层-Leetcode 429. N叉树的层序遍历-java版

如何在层序遍历n叉树时,将每层元素分开?本文通过广度优先搜索(BFS)的方式解决这个问题。其实DFS也是可以的。

2019-07-16 19:27:35

全面介绍Linux下tcpdump的使用

本文将全面地介绍tcpdump的选项及其表达式的具体用法,并给出常见用法及推荐资料。tcpdump是Linux上的网络抓包工具,可以监视所有经过网卡的流量包。tcpdump的命令格式为`tcpdump options expression`,通过表达式可以过滤流量。直接启动tcpdump将监视第一个网络接口上所有流过的数据包。

2019-07-15 15:33:50

shell编程入门详解--从基础到调试

1. 变量1.1 变量定义a=1 : 直接赋值即可定义普通变量declare n : 定义普通变量declare -i n : 定义数值变量readonly n : 定义只读变量export n : 定义环境变量(环境变量为进程私有,可被子进程继承)local n : 定义局部变量(同名则在作用域覆盖全局变量)unset n : 取消定义变量1.2 变量使用使用变量内容: ...

2019-07-08 16:37:43

Linux Shell多线程编程之wait

一、& 介绍sleep 10 #等待10秒,再继续下一操作sleep 10 & #当前shell不等待,后台子shell等待使用&命令后,作业被提交到后台异步运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。二、wait命令介绍wait [作业指示或进程号]等待作业号或者进程号制定的进程退出,返回最后一个作业或进程的退出...

2019-07-03 23:32:57

记Hadoop3.1.2安装排错之ERROR: Cannot set priority of datanode process

问题在安装Hadoop过程中,对hdfs格式化(# $HADOOP_HOME/bin/hdfs namenode -format)之后,开始启动hdfs(# $HADOOP_HOME/sbin/start-dfs.sh)时,总是报错如下:ERROR: Cannot set priority of datanode process 3340解决方案在$HADOOP_HOME/etc/had...

2019-07-03 16:16:25

JDK11版HashMap源码全部解析(详细)-一文覆盖各方面

本文很长,详细描述了HashMap源码级别的实现原理,并讨论了包括扩容,hash计算,新建HashMap的开销等问题,同时还提供了一些外部资料。由于内容太多,建议阅读时结合目录快速跳转查看。

2019-05-11 16:18:32

深入解析Java泛型通配符类型

概述在Java中,通配符类型List<?>等价于List<? extends Object>,List<? extends Animal>则代表其可以被赋值为List或List等其子类,List<? super Cat>代表其可以被List赋值。对于采用extends形式的,主要用于读取(get),写入(set)就只能写入null对于采用sup...

2019-04-24 12:49:39

Linux shell中的特殊变量

在Bash中有些变量比较特殊,会随情况而变:$_ 是上个命令的最后一个参数$? 上个命令的退出状态,或函数的返回值$! 最近一个后台命令的PID$n传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2$# 传递给脚本或函数的参数个数。$* 传递给脚本或函数的所有参数。$ @ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与$*稍有...

2019-02-15 16:48:04

java11使用VisualVm配置远程Jstatd与JMX连接

1.Jstatd:1.1配置jstatd.policy在java11中由于没有tools.jar,所以原有的配置jstatd.policy方式行不通jstatd.policy改成如下即可grant codebase "jrt:/jdk.jstatd" { permission java.security.AllPermission; };grant codebas...

2019-02-13 19:41:25

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。