自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Stay Hungry,Stay Foolish

不积跬步,无以至千里;不积小流,无以成江海。

  • 博客(30)
  • 资源 (7)
  • 收藏
  • 关注

原创 串行处理的优化方式有哪些?

在做业务功能的时候,难免会遇到一个功能需要几部分的信息,结果获取完毕后,然后把它们聚合起来构造对应的响应信息,通常情况下我们会把这些毫无相关的业务处理串行的处理掉,这种处理方式当然可以解决这个业务。但是考虑到接口响应时间相关的问题时,或许我们可以使用其它办法来提高它的响应速度。......

2022-06-02 11:35:19 545

原创 finishBeanFactoryInitialization(beanFactory)源码阅读

实例化所有剩余的(非lazy-init)单例。

2022-04-05 14:14:59 449

原创 Spring IOC容器初始化源码剖析(三)

文章目录前言prepareBeanFactory(beanFactory);postProcessBeanFactory(beanFactory)invokeBeanFactoryPostProcessors(beanFactory)registerBeanPostProcessors(beanFactory)initMessageSourceinitApplicationEventMulticaster()onRefresh()registerListeners()Spring IOC容器初始化源码剖

2022-01-10 13:22:35 422

原创 Spring 5.x源码剖析-Beandefinition是如何创建的?

上一章我们了解了IOC容器的相关概念、如何通过代码实例化容器以及容器初始化的核心方法`refresh()`,本章开始初探`refresh()`,在阅读源码前,我们有必要先了解什么是`BeanFactory`以及`BeanDefinition`,这将有利于我们对接来下源码的理解。

2021-10-26 17:35:48 1315

原创 Spring IOC容器初始化之refresh()

知其然知其所以然,是我们做技术所追求的,但在繁忙的工作中也会难于顾及与此。从本文开始,抽出时间对`Spring 5.x`的`IOC容器`初始化的过程进行追踪梳理,探究学习`Spring`这件艺术品

2021-10-25 14:53:05 471 1

原创 通过编码的方式构建示意图?PlantUML你值得拥有!

前言工作中我们充分了解完需求后,会对需求绘制流程图、时序图等,在线编辑工具我们通常使用ProcessOn来进行绘制流程图或时序图等,除了拖拽式的构建,还有一种通过简单代码即可构建流程图或时序图等示意图的工具:PlantUML。PlantUML可以构建哪些示意图?PlantUML可以构建的示意图如下表所示: UML图 非UML图 时序图 JSON Data 用例图 YAML Data 类图 Network diagram (nwdiag)

2021-10-09 10:20:30 418

原创 MySQL explain你掌握了吗?

前言关于EXPLAIN想必每位同学都有使用过,工作中,我们可以通过它来查看慢SQL的执行计划,通过查看输出列,进而有针对性的对慢SQL进行优化,本文将对EXPLAIN的相关知识点进行梳理,做到加深印象,查漏补遗。语法EXPLAIN可以作用在SELECT、DELETE、INSERT、REPLACE和UPDATE语句上。EXPLAIN SELECT FROM tableName WHERE condition;...

2021-09-10 18:23:23 2492 1

原创 万字长文解析CGLib动态代理源码!

CGLIB是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口。

2021-02-25 14:33:04 1820 10

原创 JDK静态代理与JDK动态代理你真的需要了解一下了!

说到动态代理不得不说AOP,它是OOP的补充,通过AOP思想我们可以把公共部分抽取出来,一方面减少了代码污染,另一方面也降低了各业务逻辑之间的耦合度。

2021-02-04 17:32:21 576 6

原创 虚拟机栈的栈元素是什么?可以了解一下!

JVM以方法作为最基本的执行单元,栈帧则是用于支持虚拟机进行方法调用与方法执行背后的数据结构,同样它也是JVM运行时数据区中的虚拟机栈的栈元素。

2021-01-30 17:55:31 1464 4

原创 类加载器与双亲委派模型你了解多少?

文章目录简介类与类加载器简介加载阶段是整个类加载过程中的一个阶段,《Java虚拟机规范》没有指明二进制字节流必须要从哪里获取、如何获取,那也意味着我们的类加载过程中,加载阶段是相对可控的。(不了解类记载过程的建议去了解一下本文不再赘述,传送门)。类与类加载器任意类都必须由加载它的加载器和这个类本身共同确立在JVM中的唯一性,每个类加载器都拥有一个独立的类名称空间。比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使这两个类来源于同一个Class文件,被同

2021-01-27 19:13:57 289 2

原创 必须要了解的类加载过程

在了解类加载机制之前我们首先要了解的就是类的加载流程,明白在加载流程中各阶段主要处理哪些事情。

2021-01-25 16:42:42 249

原创 JVM字节码指令

JVM的指令由一个字节长度的、代表某种特定操作含义的数字以及跟随其后的零至多少代表此操作数所需的参数构成。

2021-01-19 19:39:48 186

原创 Class文件结构你有了解过吗?

文章目录1 Class文件结构1.1 Class的伪数据类型1.1.1 magic魔数1 Class文件结构Class文件是一组以8个字节为基础单位的二进制流,紧凑排列无分隔符。当存在需要占用8个字节以上空间的数据项时,则按照高位再迁的方式,分割为8个字节进行存储。1.1 Class的伪数据类型Class文件采用类似于C语言结构体的伪数据结构来存储数据,它有两种数据类型:无符号数,表。无符号数:基本的数据类型,以u1、u2、u4、u8分别来代表1、2、4、8个字节的无符号数,无符号数可以用

2021-01-18 11:57:56 351

原创 jps、jstat、jmap、jinfo、jstack必须掌握的命令你掌握了几个?

我们在给系统定位问题时,数据是我们分析问题的依据,工具则是我们运用掌握的知识来处理数据的一种手段。

2020-12-18 14:37:24 810

原创 ParallelGC的内存分配与回收策略

Java的自动内存管理的根本目标是自动化地解决两个问题:自动给对象分配内存、自动回收分配给对象的内存。

2020-12-15 16:27:41 1488 2

原创 HotSpot的经典垃圾收集器

HotSpot的经典垃圾收集器。

2020-11-20 16:21:54 1588

原创 垃圾回收算法你了解过吗?

Java堆和方法区,这两个区域不具有确定性:这部分内存的分配和回收是动态的,只有在运行期间内,才能确定创建哪些对象、方法执行时不同的逻辑分支、接口的多个实现类等,GC所关注的也正是这部分的内存如何管理。

2020-11-17 15:59:41 1487

原创 Java内存区域与OutOfMemoryError

Java内存区域与OutOfMemoryError。

2020-09-28 19:53:44 1635

原创 Java元注解及代码示例

注解是 JDK5.0 引入的一种注释机制,本文基于JDK1.8的基础上主要讲解注解的语法及使用。

2020-09-11 17:37:52 526

原创 ServiceLoader与SpringFactoriesLoader源码剖析

SpringBoot中很多地方中使用了SPI扩展机制,那么它是什么实现的呢?

2020-08-31 16:18:30 446

原创 synchronized和volatile的底层实现剖析

在多线程并发中synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronized,volatile保证了共享变量的`可见性`(当一个线程修改共享变量时,另一个线程能比较后读取到变动后的值),它比synchronized的使用和执行成本更低(不会引起上线文切换和调度)。

2020-08-06 11:26:30 494

原创 并发编程需要面对并解决的问题

是进行并发编程时,我们必须要了解多线程并发中容易存在的问题,比如:上下文切换、死锁、资源等问题。

2020-07-10 17:59:10 8470

原创 单例模式中懒汉模式的线程安全问题浅析

单例模式与多线程的结合,使用过程中如果考虑的不全面,会造成一些意想不到的后果,本文将介绍如何正确在多线程中使用单例模式。

2020-07-09 14:32:59 9373

原创 将博客搬至CSDN

将博客搬至CSDN

2020-07-07 18:02:00 22

原创 定时调度Timer与ScheduledExecutorService的使用与源码解析

1.如何实现指定时间执行任务?2.如何实现按指定周期执行任务?3.Timer与ScheduledExecutorService的区别是什么?本文将介绍定时调度Timer与ScheduledExecutorService的使用及源码解析。

2020-07-07 16:36:39 10929 1

原创 ReentrantLock你了解多少?

ReentrantLock你了解多少?本文将介绍ReentrantLock类的使用,ReentrantReadWriteLock类的使用。

2020-07-03 14:17:14 10779

原创 一文详解wait与notify

1)使用wait/notify实现线程间的通信。2)生产者/消费者模式的实现。3)方法join的使用。4)ThreadLocal类的使用。

2020-05-28 14:49:29 10895

原创 一文详解synchronized与volatile

1)synchronized对象监视器为Object时的使用;2)synchronized对象监视器为Class时的使用;3)非线程安全是如何出现的;4)volatile的主要作用;5)volatile与synchronized的区别及使用情况。

2020-04-28 14:55:12 10592

原创 Thread基础还不明白?还不快和我一起学

1)线程的启动;2)如何使线程暂停;3)线程的优先级;4)线程安全相关的问题

2020-04-22 18:20:45 10715

PlantUML官方文档.7z

PlantUML教程

2021-10-09

elasticsearch-7.11.1与apache-skywalking-apm-es7-8.4.0安装包

elasticsearch-7.11.1与apache-skywalking-apm-es7-8.4.0安装包

2021-04-29

winhex.zip

十六进制编辑器,亲测可用

2020-12-22

linux oracle jdk 8安装包

linux oracle jdk 8安装包

2020-12-20

JDK 9 JDK1.9 x64位下载

JDK 9 JDK1.9 x64位下载,本地安装测试通过,安装完成之后无需配置环境变量,JDK1.9之后的版本提供了自动配置功能,会在C:\ProgramData\Oracle\Java路径下生成一个javapath文件夹,切换回另一版本,删除该文件夹即可

2020-11-20

Eclipse Memory Analyzer内存映像分析工具

打开“解压路径\mat\MemoryAnalyzer.exe”后,拖入*.hprof文件即可,亲测可以使用。

2020-09-27

window-hsdis-amd64.zip

WINDOWS查看JAVA编译后的汇编代码,亲测可用,下载后,将其放在{JAVA_HOME}\jre\bin路径下,修改运行配置,添加参数-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:+PrintCompilation运行即可

2020-07-13

空空如也

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

TA关注的人

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