自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (3)
  • 收藏
  • 关注

原创 visual paradigm 时序图实用技巧

绘图结束后, 自动调整多余线长绘图结束后 , 自动调整 activity bar-调账后效果指定处断开 activity bar

2021-11-21 21:52:34 2070

原创 DDD领域驱动设计为什么那么玄学,因为你从来都没看过原书

所谓”取法乎上,得其中; 取法乎中, 得其下“ , 为了真正弄清楚DDD 的核心价值到底在哪, 笔者选择了阅读 Eric Evans 的原书, 真正阅读完毕后发现: - **事实恰恰相反, DDD 原书非常接地气, 而那些所谓解读 DDD 的博客或者教程才是将 DDD 概念抽象化的罪魁祸首**

2021-02-28 20:54:16 2750

原创 分布式一致性协议 Raft 论文原理一篇读透

阅读本文, 你将获得对于 Raft 算法论文级别的深入理解

2020-10-07 20:13:19 1692 2

原创 AQS与CLH相关论文学习系列(四)- AQS的设计思路

本文是AQS与CLH相关论文学习系列第四篇。 系列其他文章链接如下AQS与CLH相关论文学习系列(一)- 排队式自旋锁思想启蒙AQS与CLH相关论文学习系列(二)- MCS 锁AQS与CLH相关论文学习系列(三)- CLH 锁参考文章The java.util.concurrent Synchronizer Framework - 出自 DougLea 之手的 AQS 的设计论文...

2020-09-09 15:43:44 895 2

原创 AQS与CLH相关论文学习系列(三)- CLH 锁

本文是AQS与CLH相关论文学习系列第三篇。 本文在如上两篇文章的基础上, 进一步学习 CLH 锁设计者 Craig, Landin and Hagersten 的论文。

2020-09-07 15:35:47 940 4

原创 AQS与CLH相关论文学习系列(二)- MCS 锁

本文是AQS与CLH相关论文学习系列第二篇, 在第一篇 AQS与CLH相关论文学习系列(一)- 排队式自旋锁思想启蒙的基础上进一步学习首个提出的基于链表结构排队式自旋锁: MCS 锁参考文章Algorithms for Scalable Synchronization onSharedMemory Multiprocessor 在 Anderson 论文之后, 首个基于链表的排队式自旋锁Ticket 锁在 Anderson 90 年发布的论文发布之后, Mellor-Crummey 和 Sc

2020-09-07 15:30:10 657 4

原创 AQS与CLH相关论文学习系列(一)- 排队式自旋锁思想启蒙

参考文章Building FIFO and priority-queueing spin locks from atomic swapThe java.util.concurrent Synchronizer Framework前言AbstractQueueSynchronizer 是 jdk1.5 及之后版本中 java.util.concurrent 包里很多同步器的实现基础, 例如locks, barriers 很多类都是基于 AbstractQueueSynchronizer 实现的, 后面

2020-09-02 22:24:05 1126 3

原创 拜托,请不要再曲解CAP定理

特定理论的英文缩写一向是程序员装逼最趁手的工具, CAP, BASE 就是上述的装逼利器之一, 而且有点烂大街。 很多程序员甚至不屑于过多使用,然而遗憾的是, 很多人对于CAP定理的理解甚至都是错误的

2020-06-02 18:20:22 844

翻译 TensorFlow官方教程《Neural Networks and Deep Learning》译(第三章)

改进神经网络学习的方式当一个高尔夫球员第一次学习打高尔夫的时候, 他们通常会把大部分的时间花费在练习基本的挥杆动作上。 慢慢地他们才基于基础的动作学习新的动作: 低飞球、左曲球和右曲球 。 与之类似, 到目前, 我们一直专注于理解反向传播算法。 这就是我们的 “基础挥杆动作”, 是学习神经网络的基础。 这一张, 我会解释一系列可以用于改善我们反向传播算法初级实现的技巧, 从而改善我们的神经网

2020-05-09 11:00:07 521

原创 Spring Cloud OpenFeign 工作原理解析

背景OpenFeign 是 Spring Cloud 家族的一个成员, 它最核心的作用是为 HTTP 形式的 Rest API 提供了非常简洁高效的 RPC 调用方式。 如果说 Spring Cloud 其他成员解决的是系统级别的可用性,扩展性问题, 那么 OpenFeign 解决的则是与开发人员利益最为紧密的开发效率问题。使用方式在介绍...

2020-05-07 18:05:45 20648 7

原创 为什么 slf4j 被推荐使用

参考文章:Simplifying the distinction between SL4J and commons logging日志那点事儿——slf4j源码剖析

2020-04-30 17:15:44 357

原创 那些你应该掌握的 Spring 原理

文章目录参考文章前言Spring 的基本思想:控制反转/依赖注入(IoC/DI)应用 控制翻转 / 依赖注入 (IoC/DI)之前应用 控制翻转 / 依赖注入 (IoC/DI)之后松耦合的好处IoC 就没有副作用吗Spring 的核心: Bean 容器获取 Bean 的描述信息:BeanDefinitionXml 形式的 Bean 描述Annotation 形式的 Bean 描述两类 IoC 容器...

2019-12-12 17:15:57 1843 3

原创 Java 原生基于接口的动态代理

文章目录参考文章前言JAVA 原生动态代理例子一:一个只会打印被调用方法的代理步骤一: 创建 Invocation Handler步骤二: 创建 Proxy Instance例子二:可以代理多个接口的 InvocationHandler步骤一: 创建 TimingInvocationHandler步骤二: 创建代理实例并调用参考文章java dynamic proxies前言代理可以看做...

2019-06-18 09:47:01 2460

转载 Java 注解如何工作

本文转载自 注解是什么,为什么要使用注解自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解。这篇文章中,我将向大家讲述到底什么是注解,为什么要引入注解,注解是如何工作的,如何编写自定义的注解(通过例子),什么情况下可以使用注解以及最新注解和ADF(应用开发框架)。这会花点儿时...

2019-06-17 11:10:26 354 1

原创 Paxos 协议:多状态机的一致性解决方案

文章目录问题背景中心化架构带来的单点失败问题问题背景在 正确理解二阶段提交(Two-Phase Commit) 的文章中, 笔者解析了二阶段提交协议是如何满足一个分布式原子性提交协议应该具有的性质。二阶段提交协议(Two-Phase Commit)出现的本质原因是, 分布式系统中不同的结点有不同的功能, 不同功能背后对应的数据集不同, 不同功能又需要一定的协同性。二阶段协议中, 一个比较严...

2019-04-22 11:20:14 1614 1

原创 正确理解二阶段提交(Two-Phase Commit)

明确问题二阶段提交出现的背景是, 当我们使用分布式系统时, 如果分布式系统中的机器发生故障之后, 如何保证事务数据的一致性。从一个场景入手, 假设一个人要从 A 银行向 B 银行进行跨行转账 100 元。此时我们需要对 A 银行数据库中该用户的账户,做金额扣减操作( - 100), 同时对 B 银行数据库中该用户的账户做金额增加操作 ( +100)这两个操作( -100 和 + 100)...

2019-03-07 15:42:56 36499 15

原创 面试题之窒息翻译:类加载机制的双亲委派(正解:父委派模型)

致命的翻译(双亲委派模型)JVM 类加载机制也是一道常见的暖场题, 令人感到厌烦的是, 这个类加载机制的翻译就和“套接字”一样令人感到窒息。大部分的计算机英文术语在命名时, 都会尽可能做到直白易懂, 体现技术概念的本质。 但是中文翻译中往往英文翻译者水平,导致这种信息的丢失, 使得原本直白的概念变得晦涩难懂,容易误解。双亲委派模型 就是一个典型的例子。大部分程序员第一眼看到这个术语, 脑子...

2019-02-26 16:31:22 4422 11

原创 Eureka Server 搭建过程中 Dashboard 404 error 解决方案

记录一下用 spring initializer 生成的 gradle 项目 Spring Cloud Eureka Server 搭建过程中, 遇到的问题 :ch.qos.logback.classic.turbo.TurboFilter ClassNotFound按理说 gradle 会下载好相关的依赖, 但是却报了这种错误, 如果简单的去手动提添加这个依赖, 报错会消失, 但是启动 eu...

2018-12-11 17:51:06 3084

原创 从面试暖场题到挖出JDK Bug: 谈谈你对 HashMap, ConcurrentHashMap 的理解

本文分享了java HashMap 等相关数据结构实现原理, 以及在java 8 源码阅读中挖出的一个bug

2018-11-14 15:43:11 2686 19

原创 TCP 为什么三次握手而不是两次握手(正解版)

TCP 采用三次握手的原因其实非常简单, 远没有大部分博客所描述的那样云山雾绕。

2018-09-19 19:10:58 137819 184

翻译 T分布:一个被啤酒厂发现的关键统计概念

In this post we will look at two probability distributions you will encounter almost each time you do data science, statistics, or machine learning. Gaussian distribution Imagine that we are doing a...

2018-08-27 15:44:27 10902

原创 Java中的偏向锁,轻量级锁, 重量级锁解析

参考文章聊聊并发(二)Java SE1.6中的SynchronizedLock Lock Lock: Enter!5 Things You Didn’t Know About Synchronization in Java and ScalaSynchronization and Object LockingJava 中的锁在 Java 中主要2种加锁机制:synchr...

2018-08-13 18:39:49 65779 94

原创 wait(),notify() 与 await(), signal(), signalAll() 的区别

参考文章Oracle 官方文档 Condition Interface How is await() different from wait() ?wait() 和 notify() 的使用方式wait() 与 notify() 需要搭配 synchronized 关键字使用, 示例如下// 线程 A 的代码synchronized(obj_A){ while(!...

2018-08-07 17:43:21 18041 1

原创 java中synchronized关键字与ReentrantLock对比

参考文章 - Locks in Java - ReentrantLock Example in Java, Difference between synchronized vs ReentrantLocksynchronized 关键字的可重入性 - 在 java 中被 synchronized 关键字所修饰的代码块是支持重入的。 也就是说, 当一个java线程进入了某个对象的 sync...

2018-08-06 15:52:13 1788 1

原创 清晰解题: Java 是编译型语言还是解释型语言

Java 的跨平台运行能力的本质原因是, Java 会首先被编译为字节码(bytecode), 然后可以被不同平台的 JVM 解释成对应的机器码,得以运行。解释和 JIT 编译的区别: 解释: JVM 运行时加载 .class 文件, 逐条读取其中的 bytecode , 将其转换为特定平台的 CPU 指令予以执行。 同一条指令被多次运行, 也会被多次解释, 指令解释的过程会耗费额外的时间...

2018-05-05 21:33:13 1170 2

翻译 TensorFlow官方教程《Neural Networks and Deep Learning》译(第二章)

反向传播算法(BackPropagation algorithm)的工作原理在上一章节中, 我们看到了神经网络是如何利用梯度下降算法从数据中学习权重值 weights 和 偏倚量值 biases ,完成“学习” 的过程。 但是, 在算法原理的解释中, 有一个环节被跳过了: 我们没有讨论如何计算成本函数(cost function) 的梯度值。 这是很重要的一个环节! 在这一章, 我们会解释一个

2017-11-26 21:49:57 2058

原创 同步/异步,阻塞/非阻塞概念深度解析

IO 概念区分NIO 现在已经是一个耳熟能详的名词了, 好像人人都能对所谓的 NIO ( Non-Blocking IO, 非阻塞 IO ) 发表一些如何如何提高效率的言论。 但很多东西, 追问几句就会难以自圆其说。 四个相关概念: 同步(Synchronous)异步( Asynchronous)阻塞( Blocking )非阻塞( Nonblocking)

2017-10-03 13:10:26 30320 31

原创 Java 语言中 Synchronized 关键字的最致命误区

敲地(hei)板前言synchonized 关键字是 java 中一旦涉及并发, 永远绕不过的一个知识点。 如果让你用自己的话, 解释一下 synchronized 关键字, 如果你说出 “被 sychronized 关键字所修饰的代码或方法块不会在同一时间被多个线程执行” 这种话, 那么恭喜你, 掉入了 synchronized 关键字最为常见的误区之一。

2017-09-23 10:55:29 954 1

原创 详解 xml 文件头部的 xmlns:xsi

Maven 是一个 java 开发人员很难绕过的构建工具, 因为有众多的开源项目都使用 Maven 作为其构建工具。 而阅读 maven 中的 pom 文件, 是了解一个项目依赖关系和构建方式的重要环节。 但是 pom 文件的头部会让初学者感到困惑, 这里对其进行一个清晰易懂的解释

2017-09-09 12:52:11 37310 19

翻译 TensorFlow官方教程《Neural Networks and Deep Learning》译(第一章)

– 更新中译自:Neural Networks and Deep Learning成果预展示如果你能坚持阅读完本章, 你可以获得如下的成果: 上图中的命令行窗口输出为: Epoch 0: 9095 / 10000Epoch 1: 9213 / 10000Epoch 2: 9299 / 10000Epoch 3: 9358 / 10000...Epoch 27

2017-07-27 18:16:28 10283

原创 中介者模式(Mediator Pattern): 避免对象间错综复杂的相互引用

参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知大部分程序员编写的程序可以分为三类(应用程序、工具包 、框架),使用设计模式的目的是提高代码的可复用性和可扩展性(灵活性), 但是设计模式在这三类软件中所发挥的效果是不一样的。很多有经验的程序员会得出“使用了设计模式,反而降低了代码的可读性,增

2017-06-23 14:10:29 795

原创 访问者模式(Vistor Pattern)

访问者模式的有两个关键点: - 需要访问的数据结构中包含的元素并不是同一类型的, 而是多个不同类型, 相同目的的访问需要根据元素类型进行不同的操作。 - 被访问的数据结构中所包含的元素类别几乎不怎么改变, 因为使用访问模式以后, 添加一个新的元素类会需要对所有的 Vistor 子类进行修改, 定义新的访问方法。

2017-06-22 16:30:42 405

原创 状态模式(State Pattern):拒绝大量的 If 与 Switch

参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知大部分程序员编写的程序可以分为三类(应用程序、工具包 、框架),使用设计模式的目的是提高代码的可复用性和可扩展性(灵活性), 但是设计模式在这三类软件中所发挥的效果是不一样的。很多有经验的程序员会得出“使用了设计模式,反而降低了代码的可读性,增

2017-06-22 13:34:03 987

原创 策略模式(Strategy Pattern): 开闭原则的践行者

策略模式初看上去, 像是在教学小白如何使用继承或是接口, 然而实际上, 它是在教学如何使用对象组合。 了解完对象组合和类继承的关系以后, 再看策略模式, 会觉得豁然开朗。

2017-06-16 14:17:57 1087

原创 设计模式用前须知

参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知1: 为什么有人说设计模式故弄玄虚大部分程序员编写的程序可以分为三类(应用程序、工具包 、框架),使用设计模式的目的是提高代码的可复用性和可扩展性(灵活性), 但是设计模式在这三类软件中所发挥的效果是不一样的。 很多有经验的程序员会得出“使用了

2017-06-08 14:43:18 554

原创 备忘录模式(Memento Pattern): 一个需要注意方法权限的模式

了解过备忘录模式的 Java 同学可以先看一下如下备忘录模式的 Mementor 实现举例, 是否能发现其中的明显错误。 如果不能, 则更有必要阅读本文

2017-05-10 22:24:06 575

原创 迭代器模式 ( Iterator Pattern )

参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》Java for 、for each 循环深入理解(转载)Java for-each循环解惑java中为什么要使用Iterator设计模式用前须知 设计模式种一句出现频率非常高的话是,“ 在不改动。。。。的情况下, 实现。。。。的扩展“ 。

2017-05-10 14:44:24 533

原创 解释器模式( Interpreter Pattern ): 最不容易实现的设计模式

参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知 设计模式种一句出现频率非常高的话是,“ 在不改动。。。。的情况下, 实现。。。。的扩展“ 。 对于设计模式的学习者来说,充分思考这句话其实非常重要, 因为这句往往只对框架/ 工具包的设计才有真正的意义。因为框架和工具包存在

2017-05-09 15:53:45 465

原创 命令模式( Command Pattern )

参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知 设计模式种一句出现频率非常高的话是,“ 在不改动。。。。的情况下, 实现。。。。的扩展“ 。 对于设计模式的学习者来说,充分思考这句话其实非常重要, 因为这句往往只对框架/ 工具包的设计才有真正的意义。因为框架和工具包存在

2017-05-08 13:50:56 814

原创 责任链模式 ( Chain of Responsibility)

参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知 设计模式种一句出现频率非常高的话是,“ 在不改动。。。。的情况下, 实现。。。。的扩展“ 。 对于设计模式的学习者来说,充分思考这句话其实非常重要, 因为这句往往只对框架/ 工具包的设计才有真正的意义。因为框架和工具包存在

2017-05-07 09:42:15 645

数据结构和算法FLASH动画演示( 无密码)

数据结构里45个经典算法的FLASH演示,有利于理解学习

2013-07-15

Intel汇编语言程序设计+第四版.zip

汇编语言学习的好资料,intel汇编语言程序设计第四版,PDF,相对比较不错的

2012-07-21

空空如也

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

TA关注的人

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