学习
major_tom
不会敲代码的土木人不是一个好的作家
展开
-
自研RPC框架
最初demo版本,不断完善中ing,注册中心还没做,服务治理不打算做了… 技术介绍:底层传输框架为netty,基于springboot-starter,自定义注解注入FactoryBean动态代理类… consumer端 自定义注解@RpcReference注入bean的元数据,rpc.starter.consumer为true的时候开启注解扫描 provider端 自定义注解@RpcComponent 暴露服务 netty客户端服务端之间使用rpcInvocation和rpcResult对象来传输数据原创 2020-06-17 01:53:06 · 352 阅读 · 0 评论 -
如何部分从BlockingQueue的同步中解脱
凡是阻塞队列,皆有同步 有人的地方就有江湖,有竞争的地方就要同步.同步也许是通过AQS实现,也许是通过synchronized实现,也许是通过XXX实现,反正皆有同步,没有同步兜底的阻塞队列都是fake news(川普口气)/ 屠龙之术中的取巧之术 in my opinion,我觉得阻塞队列确实是非常有用的,我觉得其是屠龙之术,能解决基本上所有问题,但是在一些特殊的情况下,我们其实不用屠龙之术,我们可以取巧.当然基于AQS的同步其实已经帮我们取巧了一些,类似于轻量级锁的cas让我们如沐春风.但是当竞争确实存原创 2020-06-03 16:27:35 · 192 阅读 · 0 评论 -
浅析mysql redis rocketmq的持久化机制
触类旁通 据我的学习经验,优秀的源码里面无非就是一些通用经验,通用设计模式,通用算法,通用操作系统知识,通用数据结构的组合。既然是通,其实大可以触类旁通,就看其组装的怎么样了,组装得好就是3A佳作,组装得不好甚至用地摊货就是泰坦陨落(仙6风评被害)。 误杀(翻拍自误杀瞒天记)电影里面有一句话是:如果你看过1000部电影,就会知道这世界本没有什么离奇的事情。 我觉得可以说:如果你看过1000份优秀源码,就会知道这世界并没有什么难懂的源码。------虽然我阅历尚浅,并未看过多少源代码,只是一个练习时长两年半的原创 2020-05-18 05:03:13 · 392 阅读 · 0 评论 -
[LeetCode][Word Search]思路没错,写法大误
Word Search 今天练习了一道leetcode,一看,就是暴力解法就行了嗷,利用DFS的思想遍历遍历,从四个方向进发。 然后我真的从四个方向都出发了,结果运行显然就超时了。以下为超时代码 class leetCode79 { public static void main(String[] args) { char[][] a = {{'a','a','a','a','a','a...原创 2019-06-11 18:52:21 · 133 阅读 · 0 评论 -
记录一次new与clone方法复制对象效率测试
测试clone和new方法的效率差别,首先来反面教材. public class TestCloneAndNewMain { public static void main(String[] args) throws CloneNotSupportedException { TestClone original = new TestClone("1", "2&a原创 2019-02-20 17:53:32 · 536 阅读 · 0 评论 -
业余学习python小笔记
学习python 第一天 1.缩进很重要,不能随便在前面加空格 number = int(input("请输入一个数字")) #这个和java里面的强转不一样,java里面是int打括号 if number <= 100: print("smaller equal") else: print("bigger&am原创 2018-04-08 19:17:38 · 252 阅读 · 0 评论 -
markdown语法实践
转朱阁低绮户 照无眠 人有悲欢离合 月有阴晴圆缺 人有悲欢离合,月有阴晴圆缺 明月几时有 高处不胜寒 <php> echo “hello world"; </php> 转朱阁 把酒问青天 ...原创 2018-02-09 14:33:40 · 135 阅读 · 0 评论 -
算法导论学习--动态规划--最佳二叉搜索树
“ public class 最佳二叉搜索树 { public static void main(String[] args) { double[] p = {0.15, 0.10, 0.05, 0.10, 0.20}; double[] q = {0.05, 0.10, 0.05, 0.05, 0.05, 0.10}; int plen = p.length;原创 2018-01-23 17:31:26 · 199 阅读 · 0 评论 -
算法导论学习--动态规划--LCS算法
LCS,即是最长公共子序列算法。 下面是我的代码 char[] arrayA = new char[]{‘A’, ‘B’, ‘C’, ‘B’, ‘D’, ‘A’, ‘B’}; char[] arrayB = new char[]{‘B’, ‘D’, ‘C’, ‘A’, ‘B’, ‘A’}; 我使用了map来存储数组的键值,比如(”1,2”) 首先得将map的所有边缘键值设为0,然后至底而原创 2018-01-13 18:51:28 · 437 阅读 · 0 评论