自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (5)
  • 问答 (4)
  • 收藏
  • 关注

转载 27个常见的MySQL服务器参数配置

 充分理解 MySQL 配置文件中各个变量的意义对我们有针对性的优化 MySQL 数据库性能有非常大的意义。通常我们需要根据不同的数据量级,不同的生产环境情况对MySQ配置文件进行优化

2023-03-12 11:50:03 935

原创 RocketMq消息持久化(一)——存储架构设计概述

RocketMq 索引文件,RocketMq commitLog, RocketMq consumQueue文件。RocketMq 默认存储目录

2022-12-04 17:38:08 1423

原创 tomcat线程池-深度分析tomcat线程池设计与现实

深入分析tomcat 线程池执行原理以及核心属性

2022-11-15 20:51:53 1062

原创 详解synchronized锁升级过程

1.概述Java内置锁的状态总共有4种状态,级别由低到高依次为:无锁、偏向锁、轻量级锁和重量级锁。其实在JDK 1.6之前,Java内置锁还是一个重量级锁,是一个效率比较低下的锁,在JDK 1.6之后,JVM为了提高锁的获取与释放效率,对synchronized的实现进行了优化,引入了偏向锁和轻量级锁,从此以后Java内置锁的状态就有了4种(无锁、偏向锁、轻量级锁和重量级锁),并且4种状态会随着竞争的情况逐渐升级,而且是不可逆的过程,即不可降级,也就是说只能进行锁升级(从低级别到高级别)2.锁升级演变

2021-11-07 22:56:10 875

原创 Spring 事件机制总结

1.Spring事件类型    在Spring中,事件是由org.springframework.context.ApplicationEvent实例来表示的,这个抽象类继承扩展了java.util.EventObject,可以使用EventObject中的getSource方法,我们可以很容易地获得所发生的给定事件的对象;在Spring应用中,事件主要分为两大类型,容器生命周期相关和请求过程相关,如下,为ApplicationEvent相关的UML图,通过子类基础

2020-08-23 15:44:27 384

原创 Spring5.1源码编译

1.下载源码下载地址:https://github.com/spring-projects/spring-framework/tree/5.1.x      点击“clone or download” 按钮下载源码    下载完成后解压,如上所示。2.安装gradle并配置阿里云镜像下载gradle:https://downloads.gradle-dn.com/distributions/g

2020-08-16 15:26:26 520

原创 再见,Navicat!DataGrip 真香

      DataGrip 版是由 JetBrains 公司(就是那个出品 Intellij IDEA 的公司)推出的数据库管理软件。如果你不爱折腾的话,这家公司出品的很多 IDE 都是你的最佳选择,比如你进行 Python 开发的可以选择 JetBrains 全家桶中的 PyCharm 。      DataGrip 支持几乎所有主流的关系数据库产品,如 DB2、Derby、H2、MySQL、Orac.

2020-08-02 16:55:24 2278 1

原创 Elasticsearch kibana IK分词器安装教程

一:安装ES(1)安装JDK环境变量export JAVA_HOME=/usr/local/jdk1.8.0_181export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarsource /etc/profile(2).下载elasticsearch安装...

2020-04-05 16:08:59 791

原创 SpringBoot内嵌Tomcat原理剖析

1.嵌入式Tomcat     懂得SpringBoot的童鞋应该很清楚,对于SpringBoot应用来说,不管应用程序是属于何种类型,都是一个Main方法走遍天下,而且对于web应用,只需要引入spring-boot-starter-web中这个依赖,应用程序就好像直接给我们来了个tomcat一样,其实,这里并不是SpringBoot团队里面有什么骚操...

2020-03-29 14:18:48 4995

原创 MyBatis核心处理层:MyBatis初始化流程补充(动态sql解析)

1:概述       在写完MyBaits核心处理层时,总感觉对于动态sql语句的解析没有写清楚,所以对于SqlNode,SqlSource这两个类相关的东西再写一篇博客,也算是对MyBatis源码的相关知识点的一次回顾,童鞋在看完这篇的时候,可以再回顾一下MyBatis初始化流程下,可能对sql语句解析的章节理解起来更容易。其实SqlNode和SqlSo...

2020-01-19 21:09:38 320

原创 MyBatis源码核心处理层:MyBatis初始化流程下

1:概述    接着上篇文章MyBatis初始化流程上,我们继续分析MyBatis的初始化流程,上篇文章讲解到映射文件的解析,本篇我们接着分析MyBatis是如何解析我们自己编写的mapper文件的,整个过程可能比较复杂,涉及到的知识点也比较多,如动态语句的解析,resultMap 节点解析,二级缓存,mapper文件与DAO的绑定,虽然比较复杂,但是耐心...

2020-01-16 22:45:07 251 1

原创 MyBatis源码核心处理层:MyBatis初始化流程上

1 概述       在学习完MyBatis的基础模块之后,我们就正式进入主题,开始分析MyBatis的初始化流程,对于MyBatis的初始化流程,涉及到的知识点比较多,如各种配置的初始化,映射文件的解析,特别是映射文件的解析比较麻烦,所以对于MyBatis的初始化流程,将分为两篇文章进行解析,本篇只分析配置的初始化,对于映射...

2020-01-14 21:44:52 220

原创 MyBatis源码四基础层:日志模块

1. 概述:       在 Java 开发中常用的日志框架有 Log4j 、 Log4j2 、 Apache Commons Log 、java.util.logging.slfj等,这些工具对外的接口不尽相同。为了统一这些工具的接口, MyBatis 定义了 一套统一的日志接口供上层使用 ;在MyBatis的日志模块中,用到了常用的设计模式适配器模式,...

2020-01-12 17:15:25 288

原创 MyBatis源码一基础层:解析器模块

1.概述        解析器模块是 MyBatis 基础支持层的功能, 如图1所示,基础支持层位于MyBatis 整体架构的最底层,支撑着 MyBatis 的核心处理层,是整个框架的基石。基础支持层中封装了多个较为通用的、独立的模块,不仅仅为 MyBatis 提供基础支撑 ,也可以在合适的场景中直接复用 ,如反射模...

2020-01-11 19:48:59 283

原创 从源码了解dubbo远程服务暴露过程

1简介       本篇文章,我们来研究一下 Dubbo 导出服务的过程,文章主要是从Spring解析dubbo自定义标签为入口,概括性的整理出dubbo是怎么进行服务暴露的,当然,对于inJvm协议的暴露,本篇就不会概述,如果对Spring自定义标签不熟的读者,可参考博主之前写的文章Spring自定义标签,该文章对Sprin...

2019-12-01 17:29:52 317

原创 AQS(AbstractQueuedSynchronizer)抽象队列同步器

1.AQS概述AQS,AbstractQueuedSynchronizer,即队列同步器。它是构建锁或者其他同步组件的基础框架(如ReentrantLock、ReentrantReadWriteLock、Semaphore等),JUC并发包的作者(Doug Lea)期望它能够成为实现大部分同步需求的基础。它是JUC并发包中的核心基础组件,相比synchronized,synchronized缺少...

2019-11-24 22:21:16 250

原创 dubbo扩展机制SPI(一)

1.JDK内置SPI机制1.1 概述       SPI 全称为 Service Provider Interface),是JDK内置的一种服务提供发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。1.2 约定在META-INF/services/目录中创建以...

2019-11-17 20:06:51 334 1

原创 JUC-CopyOnWriteArrayList源码学习

1.概述       JUC包下的并发List只有CopyOnWriteArrayList。该arrayList是线程安全的arrayList,对其修改的操作都是都是在一个副本数组进行的,也即是采用写时复制的策略。如图1为该类的继续关系,在开始阅读CopyOnWriteArrayList的时候,不妨大家可以思考一下,假如自己写...

2019-09-01 16:20:51 330

原创 Spring源码——ApplicationContext相关接口架构分析

        用过Spring的童鞋都知道,BeanFactory 是Spring最重要的最简单的Bean容器,但是由于BeanFactory 过于简单,所以它并不适合实际应用的企业级开发,因此,Spring提供了另外的一套Bean容器管理的体系-ApplicationContext体系。1.Application...

2019-08-18 16:09:43 1605

原创 spring源码之-import标签解析

1.Import标签示例       在SpringBoot之前,Spring配置文件的小伙伴都知道,配置文件的维护会让人觉得恐怖,如果配置文件太多,所有配置都放在一个 spring.xml 配置文件中,那么这个文件就会变得很臃肿,所有针对这种情况 ,Spring 提供了一个分模块的思路,利用 import 标签,可以将各个不...

2019-07-28 15:51:36 808

原创 centos7安装rabbitMQ

一:安装RabbitMq下载erlang和rabbitmq-server的rpm 1.http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm 2.http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabb...

2019-06-09 22:25:46 123

原创 spring源码学习之自定义标签

一:概述       在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准Bean来配置,但配置较为复杂或者需要更多丰富控制的时候,就会显得非常笨拙。一般的做法是用原生态的方式去解析定义好的XML文件,然后转为可配置对象。这种方式可以解决问题,但是实现起来比较繁琐。但是利用Spring 提供了...

2019-03-03 19:26:30 210 2

原创 Spring源码阅读-BeanDefinition

1概述     在阅读Spring源码的时候,发现Spring通过加载配置文件获得文档(document)对象之后,会对文档里面的标签进行解析注册到Spring容器中,如下图所示,通过资源文件获得文档对象之后,Spring会立马进行bean标签的解析和注入。    &am

2018-12-23 19:55:07 1900 3

原创 MySQL-MySQL int(M)中M的理解

1.概述:    在数据库优化中,定义数据字段的类型对数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。本文讲的主要是MySQL数值类型。MySQL支持所有标准SQL数值数据类型。作为SQL标准的扩展,MySQL也支持整数类型TINYINT、SMALLINT、MEDIUMINT和BIGINT。下面的...

2018-08-21 13:24:39 2703

原创 java并发编程-JUC之阻塞队列

      阻塞队列是JUC包下的重要的数据结构,阻塞队列(BlockingQueue)提供了 线程安全的队列询问方式 ,当阻塞队列进行插入 数据 的时候,如果队列已满,则线程处于等待状态,从阻塞队列取出数据的时候,如果 队列为空,则线程处于阻塞指导处于非空。在 JUC包中,很多高级同步类都是 基于BlockingQueue来 实现的。...

2018-08-19 17:11:06 909

原创 java并发编程-JUC之ThreadPoolExecutor

    ThreadPoolExecutor类是线程池中最核心的类,不提倡直接使用,最好是使用Executors类中提供的静态方法来创建线程池。ThreadPoolExecutor继承AbstractExecutorService类,即ThreadPoolExecutor中能够调用ExecutorService的方法。ThreadPoolExecutor中主...

2018-08-19 15:34:35 324

原创 java并发编程-JUC之线程池概述

概述:    在多线程编程中,任务都是一些抽象且离散的工作单元,而线程是使任务异步执行的基本机制。随着应用的扩张,线程和任务管理也变得非常复杂,为了简化这些复杂的线程管理模式,我们需要一个“管理者”来统一管理线程及任务分配,这就是线程池。同时可以根据系统的环境,手动设置线程的数量,让运行效果达到最佳。1.JUC下的线程池框架结构 &nb...

2018-08-18 22:10:20 314

原创 JVM-内存区域划分

1.java运行时数据域:根据《Java虚拟机规范(Java SE 7 版)》的规定,Java虚拟机所管理的内存区域分为如下部分:方法区、堆内存、虚拟机栈、本地方法栈、程序计数器.。如图 所示           &am

2018-08-18 13:17:03 183

原创 JVM-虚拟机性能监控工具 与故障处理工具

1.概述:       在线上处理问题的时候,知识,经验是关键基础,数据 是依据,工具是知识处理数据的手段,本文说的数据包括主要是 指运行日志、异常堆栈、GC日志、快照 文件 等。在本文中,工具 主要是指JDK自带的工具,主要是 位于JDK的bin目录下面,如 图所示: 2.常见监控工具 &

2018-08-15 21:13:37 598

原创 HashMap(一)——HashMap put方法原理

1.HashMap重要成员部分成员变量如下://初始值,为16,必须为2的次幂static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; //当容量被占满0.75时就需要reSize扩容static final float DEFAULT_LOAD_FACTOR = 0.75f;//链表长度到8,就转为红黑树stat...

2018-08-14 13:04:36 48417 8

原创 jvm-类加载过程

1.类加载机制类加载阶段:虚拟机要完成的3件事情: 1)通过一个类的完全限定名来 获取 此类的二进制字节流 2)将这个字节流所代表的静态 存储结构转化为方法区的运行时 数据结构 3)在 内存生产java.lang,Class对象,作为 换个类的各种数据访问入口。 在 Java 中默认提供了三个类加载器,分别是BootstarapClassLoader...

2018-08-12 20:41:35 6092 1

原创 ES笔记-安装elasticsearch-head插件

elasticsearch-head插件提供 一个索引树预览和创建索引树工具,还可以 运行一些 命令 ,如定义 命令的别名和删除 索引。一:安装 node环境进入官网(https://nodejs.org/en/download/),依据操作系统位数选择相应的压缩包,使用如下命令将其下载到linux服务器中。 wget https://nodejs.org/dist/v8....

2018-08-12 17:19:00 1739

原创 MySql锁的理解

一:乐观锁乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突。 通常的实现方法是: 在表中的数据进行操作时(更新),先给数据表加一个版本(version)字段,每操作一次,将那条记录的版本号加1。也就是先查询出那条记录,获...

2018-08-12 09:49:12 743

原创 jvm垃圾收集算法

一:标记清除法: 标记清除算法就跟 它名字一样,标记 后清除。首先需要标记需要回收的对象,标记算法可以有引用计数法和可达性分析 算法。在标记完成 之后,对标记的对象进行内存回收。 标记清除算法主要是有两个问题,一个是效率问题,标记和清除过程的效率不高,第二个是空间问题,会存在很多内存碎片,导致大对象无法分配内存。 如图,为标记-清除算法示意图: 二:复制算法 ...

2018-08-12 09:37:11 249

java高并发

本文档主要系统性的总结和阐述了与Java并发相关的知识点

2018-11-05

fastdfs文件 系统 所需要 的jaar包

fastdfs-nginx-module_v1.16.tar.gz FastDFS_v5.05.tar.gz libfastcommon-1.0.7.tar.gz nginx-1.8.1.tar.gz

2017-10-09

aspect所需jar包

spring aop所需jar包,spring的版本为spring-aop-4.2.4

2017-03-02

log4j-1.2.16

Hibenate日志jar包

2017-03-02

网页图表显示

Highcharts组件支持在网页显示各种图表,包括柱形图,折线图等数学图表,

2016-04-08

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

TA关注的人

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