文章
我发布的全部文章。
重构接收价格前置项目
没想到,重构这个项目的原因居然是公司开始不再使用 Tomcat 部署项目,想把之前的 war 包启动的项目都换成 jar 包部署。之前的前置项目大部分都都是“远古时期”流传下来的“毒瘤”,纯 Java 项目,各种 Thread 满天飞,规范什么的就更别提了,为了追赶上线进度,我们引用 tomcat-embed 模块实现 Java 内置 Tomcat 启...
并发
提到 Java 的编译过程,我们都会想到 .java 文件到 .class 字节码文件再到汇编指令到 CPU 内执行,而 Java 的并发机制正是依赖了 JVM 的实现和 CPU 的指令,让我们从 volatile 和 synchronized 这两个关键字来配合理解一下并发的原理。 都说 volatile 是轻量的 synchronized,是因为它...
动态代理
今天在复习微服务的时候看到 OpenFeign 使用动态代理集成调用 Ribbon 来实现负载均衡,出于兴趣我就想简单瞥一眼到底是如何调用的,可是结果非常出乎意料,搜索到的结果是:在 OpenFeign 中,Ribbon 的集成是通过使用 Feign 的 Client 接口来实现的。可能那个作者单纯是想延伸一下动态代理这一块的知识,至于到底如何调用的先...
图
图G由顶点集V和边集E组成,记为```G=(V,E)```,其中V(G)表示图G中顶点的有限非空集;E(G)表示图G中顶点关系的集合。注意线性表可以是空表,树可以是空树,但是图不可以是空图。 下面是图的一些基本概念和基本术语: 当E是有向边(弧)的有限集合时,则图G为无向图。若E是无向边的有限集合则图G为无向图。 一个图G如果满足不存在重复边、不存在顶...