自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 问答 (1)
  • 收藏
  • 关注

原创 ceramic research

由于DID 文档存储为 Ceramic 流,因此支持多个身份验证密钥和轮换这些密钥等功能。已注册的模型不需要配置,SelfId中默认可用。stream太多,需要聚合,多维度聚合如何实现。生产连接自己的节点更稳定,需要注册锚定服务。同一个StreamId频繁修改会影响性能。目前一个流都是一个用户管控,不支持多用户。个人认为作为协议方,不需要太关心这个。提交过程中重启或关闭,可能造成数据丢失。如果想共享,可以部署后向官方提交注册。数据量大,如何整理,计算(链下统计)自定义的模型,加载使用。.........

2022-08-12 02:53:40 275 1

原创 ReentrantLock原理分析

ReentrantLock原理分析概述可重入的自选锁,支持公平和非公平两种模式public void lock() { sync.lock(); }Sync的实现有NonfairSync 和 FairSync各自实现 lock 和 tryAcquire来实现不同的加锁机制加锁原理非公平锁使用无参构造的默认就是非公平锁public ReentrantLock() { sync = new NonfairSync(); } static f

2022-02-18 00:41:10 399

原创 后端知识查漏补缺学习轨迹(长期更新)

后端知识查漏补缺学习轨迹(长期更新)2022-02-06尾递归布隆过滤器布隆过滤器原理redis中的布隆过滤器布隆过滤器的应用跳表VS红黑树redis RDB VS AOFRDBAOFHashMap连环问redis的过期策略以及内存淘汰机制redis reactor模型redis key value实现原理2022-02-06尾递归什么是尾递归?若函数在尾位置调用自身(或是一个尾调用本身的其他函数等等),则称这种情况为尾递归尾调用的重要性在于它可以不在调用栈上面添加一个新的堆栈帧——而是更新它,如

2022-02-07 02:18:28 1349

原创 SpringBoot启动流程分析

SpringBoot启动流程分析目录SpringBoot启动流程分析1.SpringApplicationRunListeners1.SpringApplicationRunListeners构造SpringApplicationRunListeners,其中包含多个SpringApplicationRunListenerSpringApplicationRunListener实例化过程:private SpringApplicationRunListeners getRunListeners(S

2022-01-25 17:13:27 463

原创 RocketMq源码解读-producer发送消息

RocketMq源码解读-producer发送消息

2021-11-10 15:13:02 93

原创 RocketMq源码解读-producer启动

RocketMq源码解读-producerproducer注册1.ExtProducerResetConfiguration2.RocketMQAutoConfigurationproducer注册1.ExtProducerResetConfiguration注册额外的producer注册@ExtRocketMQTemplateConfiguration修饰的bean(必许继承RocketMQTemplate)2.RocketMQAutoConfiguration...

2021-11-09 14:34:00 427

原创 Ruby元编程 第三章 方法

动态方法class MyClass def my_method(my_arg) my_arg * 2 endendobj = MyClass.newobj.send(:my_method, 3) #=> 6在send方法里,想调用的方法名变成了参数,这样就可以在代码运行的最后一刻决定调用哪个方法。称之为动态派发同样由于send方法功能的强大,也带来了一些弊端,...

2018-12-06 22:18:18 239

原创 ruby元编程 第二章 对象模型

2.1 打开类class D def x; 'x'; endendclass D def y; 'y'; endendobj = D.newobj.x # => "x"obj.y # => "y" 当第一次提及 class D时,Ruby开

2018-12-03 23:49:30 205

原创 代码整洁之道 第10章 类

1.类的组织标准的java约定:类应该从一组变量列表开始。如果有公共静态常量,应该先出现。然后是私有静态变量,以及私有实体变量。很少会有公共变量。公共函数应跟在变量列表之后。作者建议把由某个公共函数调用的私有工具函数紧随在该公共函数后面。这符合了自顶向下的原则,让程序读起来就像一篇报纸文章。2.类应该短小对于类,我们通过权责衡量大小类的名称应该描述其权责。如果无法为某个类命以精确的名称,...

2018-11-14 00:20:58 395

原创 代码整洁之道 第9章 单元测试

1.TDD三定律定律一 在编写能通过的单元测试前,不可编写生产代码定律二 只可编写刚好无法通过的单元测试,不能编译也算不通过定律三 只可编写刚好足以通过当前失败测试的生产代码这样写程序,我们每天就会编写数十个测试,测试将覆盖所有生产代码。测试代码量将足以匹敌生产代码量,导致令人生畏的管理问题。2.保持测试整洁脏测试等同于没测试测试代码和生产代码一样重要,它该像生产代码一般保持整洁测...

2018-11-11 17:39:52 806

原创 代码整洁之道 第8章 边界

所谓的“边界”是指外来代码(三方程序包、开放源代码、其他团队打造的组件和子系统)和自己写的代码之间进行整合的连接区域1.使用第三方代码以Map为例比如应用程序可能构造一个map对象并传递它。我们的初衷可能是map对象的所有接收者都不要删除映射图中的任何东西。但map正好有一个clear方法Map<Sensor> sensors = new HashMap<Sensor&g...

2018-11-10 22:48:55 728

转载 Java动态代理之jdk动态代理和cglib

一:代理模式(静态代理) 代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。 静态代理由 业务实现类、业务代理类 两部分组成。业务实现类 负责实现主要的业务方法,业务代理类负责对调用的业务方法作拦截、过滤、预处理,主要是在方法中首先进行预处理动作,然后调用业务实现类的方法,还可以规定调用后的操作。我们在需要调用业务时...

2018-07-30 11:39:54 176

原创 wordpress服务器迁移

最近终于空了些,于是打算把原来服务器的wordpress迁移到学生机上去,这样就省下每个月100块了.步骤如下: 1:先用phpmyadmin备份数据库表 2:备份网站程序3.新服务器安装lamp环境:安装httpd 安装mysql(centos7安装mariadb) 安装php 安装phpmyadmin4.创建wordpress数据库并导入表sql这里导入的时候有可...

2018-06-10 01:49:40 1053

原创 mysql为什么是部分解决幻读

先看一下事务并发中两个容易混淆的概念: 不可重复读 和 幻读不可重复读:事务A重复读取同一条数据,在读取的同时事务B修改并提交了这个条数据,那么A再读取的时候就会发生不一致。mysql中默认的隔离级别是可重复读 如何解决呢: 1:当前读:给改条数据加锁(悲观锁),即读取的时候就加锁,防止其他事务读取该数据().它能保证读取的都是最新数据 2:快照读:mvcc,多版本并发控制,详细的...

2018-05-29 14:53:06 2575 2

原创 用非递归遍历二叉树

以前一直认为递归遍历二叉树是天经地义,今天遇到了要求使用非递归来遍历二叉树,决定思考一下这个问题前序遍历用栈来实现: 1.开始先将头结点加入栈中 2.弹出栈。输出弹出元素 3.将节点右元素入栈 4.将节点左元素入栈 重复 2–4知道栈空为什么要先压入右元素呢?因为我们要确保先访问到的是左节点前序遍历代码: public ArrayList<Integer&g...

2018-05-10 16:34:45 435

原创 LeetCode 148. Sort List

Sort a linked list in O(n log n) time using constant space complexity.Example 1:Input: 4->2->1->3Output: 1->2->3->4Example 2:Input: -1->5->3->4->0Output: -1-&...

2018-05-08 21:46:30 215

原创 LeetCode 149. Max Points on a Line

Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.Example 1:Input: [[1,1],[2,2],[3,3]]Output: 3Explanation:^|| o| o| o +----...

2018-04-27 22:14:42 168

原创 java内部类中间可以用super访问父类的私有方法

A B是两个内部类@Test public void testttt(){ new B().bFunc(); } class A { private void aFunc(){ System.out.println("a"); } } class B extends A{ ...

2018-04-27 21:43:16 4124

转载 java 关于 Integer初始化

代码片段public class Test03 { public static void main(String[] args) { Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150; System. out.println( f1 == f2); //true System. o...

2018-04-25 15:30:23 13233

原创 java并发编程整理二

摘要:我们已经知道,synchronized 是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但 synchronized 粒度有些大,在处理实际问题时存在诸多局限性,比如响应中断等。Lock 提供了比 synchronized更广泛的锁操作,它能以更优雅的方式处理线程同步问题。本文以synchronized与Lock的对比为切入点,对Java中的Lock...

2018-04-23 15:15:25 239

原创 java并发编程整理一

为什么使用多线程多任务的处理,提高处理速度,减少相应时间,更好的体验随着cpu的核心数量越来越多,提供了充足的硬件基础,使用多线程重复发挥机器的计算能力,合理利用资源上下文切换cpu通过给每个线程分配cpu时间片(时间片:一般几十毫秒,是cpu分配给每个线程的时间),实现多线程执行(无论单核与多核)。cpu通过不断切换线程,已达到多个线程执行的效果。每次切换到另一个线程时,...

2018-04-23 15:14:33 209

原创 java 垃圾回收机制 详解整理

GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从gcroot开始,把所有可以搜索得到的对象标记为存活对象。GC机制 要准确理解Java的垃圾回收机制,就要从:“什么时候”,“对什么东西”,“做了什么”三个方面来具体分析。第一:“什么时候”即就是GC触发的...

2018-04-22 22:40:52 187

原创 java 表达式的数据类型自动提升规则

①所有的byte,short,char型的值将被提升为int型; ②如果有一个操作数是long型,计算结果是long型; ③如果有一个操作数是float型,计算结果是float型; ④如果有一个操作数是double型,计算结果是double型; 而声明为final的变量会被JVM优化,例题:byte b1=1,b2=2,b3,b6; final byte b4=4,b5=6; ...

2018-04-21 16:38:42 320

原创 网易笔试编程题 被3整除

时间限制:1秒 空间限制:32768K 小Q得到一个神奇的数列: 1, 12, 123,…12345678910,1234567891011…。 并且小Q对于能否被3整除这个性质很感兴趣。 小Q现在希望你能帮他计算一下从数列的第l个到第r个(包含端点)有多少个数可以被3整除。输入描述: 输入包括两个整数l和r(1 <= l <= r <= 1e9), 表示要求解的区...

2018-04-18 15:33:45 533

原创 网易笔试题 牛牛找工作

为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。 输入描述: 每个输入包含一个测试用例。 每个测试用例的第一行包含两个正整数,分别表示工作的数量N(N<=1...

2018-04-17 01:01:29 1848

原创 zookeeper伪分布安装配置

之前写过完全分布式的配置,但伪分布更适合调试使用1.配置三个配置文件(均在conf目录下)将模板复制三份 cp zoo_sample.cfg zk1.cfg cp zoo_sample.cfg zk2.cfg cp zoo_sample.cfg zk3.cfg分别做一些改动 zk1:dataDir=/home/hadoop/bda/tmp/zk1# the port at...

2018-04-14 22:15:01 552

原创 剑指offer 机器人的运动范围

题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?同样是一个图的搜索的问题,深度搜索递归即...

2018-04-14 01:34:33 101

原创 剑指offer 矩阵中的路径

请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串”bcced”的路径,但是矩阵中不包含”abcb”路径,因为字符串的第一个字符b占据了矩阵中的...

2018-04-14 01:02:44 115

原创 剑指offer 滑动窗口的最大值

题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,...

2018-04-13 22:02:54 103

原创 剑指offer 数据流中的中位数

这个题还是很不错的,是对大小堆的一个灵活运用题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。做法就是用一个大顶堆和一个小顶堆,维持大顶堆的数都小于等于小顶堆的数,且两者的个数相等或差1。平均数就在两个堆顶的数之中。java代码Pr...

2018-04-13 01:34:27 130

原创 剑指offer 序列化二叉树

题目描述 请实现两个函数,分别用来序列化和反序列化二叉树这里给出层序遍历和前序遍历两种解法(一种非递归,一种递归)层序遍历String Serialize2(TreeNode root) { StringBuilder str = new StringBuilder(""); if(root == null) return str.toString...

2018-04-12 20:56:40 101

原创 剑指offer 链表中环的入口节点

一个链表中包含环,请找出该链表的环的入口结点。这个题目leetcode上做到过,当时的思路是先找到快慢指针的第一次交点。然后把其中一个指针放回头部,两者以相同速度前进,相遇点即是入口,这需要数学证明,不大容易想 该方法代码如下 public ListNode EntryNodeOfLoop(ListNode pHead){ ListNode slow = pHead...

2018-04-11 02:14:22 169

原创 剑指offer 字符流中第一个不重复的字符

请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。 输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。我的思路是用一个数组保存每个字符的记录 空间复杂度和时间复杂度都是o(n)public int[][]...

2018-04-09 15:34:56 85

原创 剑指offer 正则表达式匹配

请实现一个函数用来匹配包括 . 和 * 的正则表达式。模式中的字符 . 表示任意一个字符,而 * 表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配这些分类很多,并a对边界需要处理的题目确实是很麻烦, 一开始不理解类似aba和.*a匹配也是成功。...

2018-04-08 16:15:35 154

原创 剑指offer 构建乘积数组

给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]。不能使用除法。这题我只只会暴力法,看了讨论,有一种三角计算的方法很赞B[i]的值可以看作下图的矩阵中每行的乘积。 下三角用连乘可以很容求得,上三角,从下向上也是连乘。 因此我们的思路就很清晰了,先算下三角中的连乘,即我们先算...

2018-04-08 13:42:16 75

原创 不用加减乘除做加法

题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。这题看出来使用位运算,但不看答案是真的不好想哈哈,虽然没做出来但还是很开心,这题不但开了脑洞: 1.二进制直接异或就能得到忽略进位的值 2.二进制相与再左移一位就能得到进位的值 非常好的题 还复习了二进制知识nice!public int Add(int num1,int num2) {...

2018-04-08 00:48:42 125

原创 剑指offer 求1+2+3+...n

求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。一下子还真没想出来,看来解答说用递归和&&的短路特点,一下子就明白了代码超级简单public int Sum_Solution(int n) { boolean value = ((n > 1) &&am...

2018-04-06 20:47:44 117

原创 剑指offer 孩子们的游戏(圆圈中最后剩下的数) ps:怀旧

题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数….这样下去….直到剩下...

2018-04-06 15:54:25 196

原创 剑指offer 数组中只出现一次的数字

题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。这个题很好,以前只做过只有一个数字出现过1次的题目,当时直接异或出结果就可以了.这个题变成了两个,想到了分组,但是想不好到底如何分,偷偷看了一眼解答明悟先异或出结果,然后找一位是1的位置作为区分, 已该位是否为1对数组进行分组,凡是为1的异或在一起得出一个结果,为0的异或在在一起得出结果...

2018-04-04 19:07:30 73

原创 数组中的逆序对

题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,size<=10^4 对于%75的数据,size<=10^5 ...

2018-04-04 14:58:20 96

空空如也

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

TA关注的人

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