![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
一根头发的Java
RantLing
一个大帅哥
展开
-
火焰图实践
1. 场景描述:因为生产环境组件服务进程执行缓慢导致部分资源无法释放,进而引起了各种任务超时。研究源码发现,部分执行过长的是操作都是在单线程中串行 。这就意味着,单个过程的执行效率会影响到整个流程的调度周期。为此,我们需要对部分组件源码进行改造,串行改并行。串行改并行,我们要小心流程执行顺序之间的依赖关系和各个线程对共享变量的读写。这里的前提是我们得知道改哪里。其实我们的需求很明确,执行过程耗...原创 2019-09-26 13:49:14 · 252 阅读 · 0 评论 -
Jackson之多态反序列化
1.场景描述JSON作为一种轻量级的数据交换格式,其清晰和简洁的结构能够轻松地与Java对象产生映射关系。例如,一个Coke(可口可乐)类的java代码如下:public class Coke{ String name = "Coke"; int capacity= 500; }用json描述该类: { "name":"Coke", "cap...原创 2019-09-26 13:52:20 · 734 阅读 · 0 评论 -
Java多线程之原子操作
1. 相关概念**本地缓存:**程序运行时,为了提高运行的速度,CPU可以不直接跟内存进行通信,而是先将内存中的数据读到内部缓存,然后再进行操作。这样会提高效率,但是我们不知道本地缓存中的修改何时会回写到共享内存中;内存可见性:可见性的意思是当一个线程修改了一个共享变量时,其他的线程能够读到这个修改的值。(这句话我当初理解的有问题,导致我在修改的代码的时候掉进一个很大的坑里) ;共享内存...原创 2019-09-26 13:53:28 · 291 阅读 · 0 评论 -
JVM运行时数据区域及异常实战
声明: 《深入理解Java虚拟机 JVM高级特性与最佳实践 第2版》。以下内容来自书中第二章。1. JVM概述JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Ja...原创 2019-09-26 13:56:13 · 185 阅读 · 0 评论 -
啥?啥是控制反转,依赖注入啊!?
依赖倒置,控制反转,依赖注入及Google Guice1. 依赖倒置依赖字面意思事物之间具有的一种关系。在面向对象编程中我将其理解为一种对象之间引用的持有关系。任何系统都无法避免依赖,如果一个类或接口在系统中没有被依赖,那么他们就不应该出现在系统之中。举个简单的例子说明依赖关系:师徒四人去西天取经。我们说说唐僧,他有个徒弟,其他的东西我们暂且忽略。如果把唐僧师徒一个具体类的话,他在收服了悟空...原创 2019-09-26 13:58:15 · 134 阅读 · 0 评论 -
谁特么用Jackson啊
Jackson核心jar包<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.8</version></dependen...原创 2019-09-26 13:59:20 · 142 阅读 · 0 评论