- 博客(18)
- 资源 (3)
- 收藏
- 关注
原创 paxos
文章目录paxos协议协议过程准备阶段接受阶段学习过程实现状态机paxos协议paxos一致性协议的目的是在分布式系统中的节点能够就一个值达成一致。paxos将节点分为三个角色:proposer、accepter和learner。proposer主要负责提出提案,accepter负责接受提案,而learner负责向accepter学习已接受的提案。每个节点可能扮演proposer、accepter或者learner中的一个或者多个角色。一个提案由编号nnn和提案值vvv组成:(n,v)(n, v)(n,
2022-05-30 21:38:16
222
原创 SSL/TLS握手过程
握手过程基础知识RSA 非对称加密算法的原理欧拉函数欧拉定理模反元素RSA密钥生成过程DH密钥交换算法的原理RSA握手过程DH握手过程SSL/TLS握手过程可以根据秘钥生成的方式不同分为RSA握手过程和DH握手过程,分别使用RSA非对称加密方法和DH秘钥交换算法生成客户端和服务端共享的秘钥。基础知识RSA 非对称加密算法的原理欧拉函数欧拉函数用来计算对于给定的正整数nnn,在小于等于nnn的元素之中有多少个元素与其互质。其解析式如下:ϕ(pk)=pk−pk−1\phi(p^k) = p^k -
2022-05-19 19:21:41
697
原创 Java7 新特性:MethodHandler,MethodHandles,MethodHandles.Lookup用法详解
相关类介绍MethodType类MethodType是不可变类,提供了对方法所有输入参数和输出参数的描述。创建MethodType类实例的方法是调用静态方法MethodType.methodType(),该方法的第一个参数是方法的返回类型,之后的所有参数都是方法的参数类型。MethodType类通过静态方法MethodType.methodType创建。// 创建一个MethodType类型对象,其返回值是String,第一个参数类型是char,第二个参数类型是charmt = MethodType
2022-04-24 15:42:16
3532
原创 python 属性、@property和属性描述符
目录python 属性类属性和实例属性@property装饰器属性描述符`__set__`方法python 属性类属性和实例属性在类中定义的是类属性,在实例中定义的是实例属性。如下定义的属性是类属性:class Person: name = NonePerson.gender = 'man'如下定义的属性是实例属性:class Person: def __init__(self, tall = None): self.tall = tallperson = Person()pe
2022-04-01 10:04:54
1055
原创 Raft详解(In Search of an Understandable Consensus Algorithm (Extended Version)翻译)
In Search of an Understandable Consensus Algorithm (Extended Version)1. 一致性算法的特征:在所有的非拜占庭条件下保证安全(不会 返回 一个错误的结果),包括网络延时,分区,包丢失,复制,重新排序。只要大多数服务器能够相互通信并且连接客户端,则可用;不依赖于时间保证日志的一致性,因为错误的时钟或者及其大的消息时延在最坏的情况下能够导致可用性问题;通常,只要集群中的大多数服务器回应了单个的RPC,一次命令就算完成;大多数服务器的
2021-11-17 13:59:11
621
原创 Java中Objects工具类
Java中Objects,Arrays工具类1. ObjectsThis class consists of static utility methods for operating on objects. These utilities include null-safe or null-tolerant methods for computing the hash code of an object, returning a string for an object, and comparing
2021-04-16 20:37:38
173
原创 ThreadLocal,InheritableThreadLocal源码解析
ThreadLocalThreadLocal源码:ThreadLocal类中首先定义了如下的属性:// final类型常量表示当前ThreadLocal实例的哈希值,通过方法nextHashCode()计算得出;private final int threadLocalHashCode = nextHashCode();// 静态类型变量nextHashCode,为了原子操作整型类AtomicInteger类对象;private static AtomicInteger nextHashCode
2021-04-15 21:17:26
124
原创 java 中的类型判断
java 中的类型判断定义如下的类:class AA {}interface BB {}class CC extends AA implements BB {}isinstance和instanceofisinstanceisinstance是Class类中的方法,用来判断一个实例是否是Class表示类或者其子类的实例:CC c = new CC()AA.class.isInstance(c); // trueBB.class.isInstance(c); // true
2021-04-13 22:06:39
1294
原创 Mybatis:配置管理
查找配置文件Resources在使用Mybatis的过程中,通常使用Mybatis的Resources类读取配置文件。在Mybatis 3.5.1的API文档中,对Resources类的描述如下:A class to simplify access to resources through the classloader.即Resources通过ClassLoader访问资源。Resources类有两个静态属性:classLoaderWrapper和Charset。ClassLoaderWr
2021-04-13 19:19:47
167
原创 java Type 及其子类介绍
java Type 及其子类介绍Type 是java反射机制中提供的一个接口,用来表示java中的所有类型的接口,定义如下:package java.lang.reflect;public interface Type { default String getTypeName() { return this.toString(); }}Type是java编程语言中所有类型的通用超级接口,包括原始类型Class,参数化类型,数组类型,类型变量和基本类型。原始类型C
2021-04-13 16:06:21
460
1
原创 java EnumMap和EnumSet
EnuMap介绍EnumMap的类定义为:Class EnumMap<K extends Enum<K>,V>其中K extends Enum<K>代表的是enum枚举类。EnumMap是将枚举类型作为Key的Map的特殊实现。Map有着弱一致性,这意味着迭代时如果对集合进行修改不会抛出ConcurrentModificationException异常,但是迭代时进行的修改对迭代本身是不可见的。EnumMap的key不能为null,但是value可以为null。
2021-04-09 20:44:10
397
原创 2021-03-18
每日一题#leetcode 115题解题目:给定一个字符串 s 和一个字符串t ,计算在s 的子序列中t出现的个数。字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)题解:1. 搜索本题的最基本思路是搜索。搜索不外乎深度优先搜索和广度优先搜索,基本思路即是遍历字符串s的所有子序列,具体代码实现在此不再赘述。2. 动态规划动态规划的主要目标即是寻找问题的子问题,并根据
2021-03-18 00:10:10
220
原创 2021-03-11
正则表达式匹配题目:正则表达式匹配 (leetcode 10/ 剑指offer 19):请实现一个函数用来匹配包含’. ‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*a"均不匹配。解题思路:1. 非正规解题思路:使用java/python自带的正则表达式库:import reclass Soluti
2021-03-11 16:46:45
92
原创 2021-03-06
leetcode 503题目给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。题解单调栈官方给出的解法是单调栈。这个题目中使用的是单调递减栈,栈中记录了没有找到下一个更大的数的下标。...
2021-03-06 14:59:34
108
原创 2021-03-06
leetcode1755 题解题目给你一个整数数组 nums 和一个目标值 goal 。你需要从 nums 中选出一个子序列,使子序列元素总和最接近 goal 。也就是说,如果子序列元素和为 sum ,你需要 最小化绝对差 abs(sum - goal) 。返回 abs(sum - goal) 可能的 最小值 。注意,数组的子序列是通过移除原始数组中的某些元素(可能全部或无)而形成的数组。提示:1 <= nums.length <= 40-107 <= nums[i]
2021-03-06 14:51:22
106
原创 2021-03-04
库函数powpowpow实现与快速幂题目:实现库函数pow(double base, int exp)解题思路这道题最朴素的解法如下:double ans = base;for(int i = 0; i < exp; i++) { ans *= base;}return ans;缺陷首先,没有考虑到边界条件。显然exp可以为负,当exp为负时base不能为0,且base,exp不能同时为0,因为000^000没有意义。其次,算法的时间复杂度太高。总所周知乘法的时间耗费不止
2021-03-04 19:26:18
184
1
原创 2021-03-04
如何通过位运算统计数字中1的数量(leetcode338)题目:给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。结题思路:这个题目的重点在于计算数字nnn中111的个数。计算一个数字中1的个数的常用方法是位运算。第一种方法是将数字n右移,与1与求得nnn的个数:int count = 0;while (n != 0) { count += n & 0x1; n >>= 1;}这
2021-03-04 17:14:16
229
1
原创 2021-03-04
力扣300最长单调子序列题解题目描述:一般解法:贪心+二分搜索题目描述:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。一般解法:一般的动态规划解法的时间复杂度为O(n2)O(n^2)O(n2),空间复杂度为O(n)O(n)O(n),地推公式为:dp[i]=max(dp[j]+1)dp[i] = max(dp[j] +
2021-03-04 16:18:25
236
1
数据库系统概念第六版答案(英文版)含全部1-26章
2019-03-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人