自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【源码】-ReentrantLock-AQS

AQS(AbstractQueuedSynchronizer)是JUC包下的核心同步器框架,采用双向队列+state状态标志实现。其核心属性包括volatile int state(锁状态)、head/tail节点和CAS操作支持。内部类Node构成双向队列节点,包含线程引用和等待状态。ReentrantLock基于AQS实现,非公平锁加锁流程:先CAS尝试获取锁,失败后封装线程为Node加入队列尾部,并通过自旋不断尝试获取锁。可重入特性通过判断当前线程是否持有锁实现(state+1)。AQS通过这种机制实

2026-03-21 10:30:00 48

原创 源码-ConcurrentHashMap(jdk1.8)

ConcurrentHashMap核心特性摘要 ConcurrentHashMap是线程安全的哈希表实现,主要特性包括: 采用分段锁设计,桶级别同步(synchronized锁单个桶) 内部结构与HashMap类似但优化并发: Node数组table,val和next使用volatile保证可见性 链表转红黑树阈值TREEIFY_THRESHOLD=8 树化最小容量MIN_TREEIFY_CAPACITY=64 put操作流程:空桶CAS插入,非空桶同步锁处理,支持多线程协助扩容 扩容机制:通过sizeCt

2026-03-20 10:14:06 205

原创 【源码】-HashMap(jdk1.8)

本文介绍了Java中HashMap的基本属性和核心实现机制。主要内容包括: 基本属性:详细说明了HashMap的默认容量(16)、最大容量(2^30)、负载因子(0.75f)、树化阈值(8)等关键参数及其作用。 数据结构:HashMap底层采用Node数组存储键值对,每个Node包含hash值、key、value和指向下一个节点的指针,形成链表或树结构。 构造方法:分析了HashMap的三种构造方式,重点解释了tableSizeFor方法保证容量为2的幂次方的原理,以及这种设计对路由算法(hash &amp

2026-03-18 14:14:06 321

原创 【源码】- SpringBoot启动

摘要:本文详细解析了SpringBoot启动源码中的SPI机制,重点介绍了getSpringFactoriesInstances方法实现过程。该方法通过类加载器读取spring.factories配置文件,获取接口实现类并实例化,最后根据Order接口或@Order注解进行排序。具体步骤包括:获取类加载器、加载配置文件、实例化实现类、Order排序等关键流程,展现了SpringBoot扩展点的核心实现原理。

2026-01-30 11:01:22 599

原创 【源码】-Java线程池ThreadPool

Java线程池ThreadPool的核心机制包括七大参数配置:核心线程数(建议CPU密集型N+1,IO密集型2N)、最大线程数、线程存活时间及单位、工作队列类型(ArrayBlockingQueue等)、线程工厂(命名/守护线程等)和拒绝策略(AbortPolicy等)。源码分析显示,线程池通过ctl变量控制状态,execute()方法根据当前线程数决定新增核心线程、加入队列或拒绝任务。关键方法addWorker()通过CAS和重试机制保证线程安全添加,使用Worker对象封装任务和线程,并通过Reentr

2025-12-11 17:54:43 528

原创 Elasticsearch 聚合搜索

当用户使用搜索引擎完成搜索后,在展示结果中需要进行进一步的筛选,而筛选的维度需要根据当前的搜索结果进行汇总,这就用到了聚合技术。

2024-09-15 11:42:20 2222 1

原创 模板替换引擎(支持富文本动态表格)

模板替换引擎(支持动态生成表格)1. 参数替换2. 函数替换,支持自定义函数3. 支持富文本动态表格生成

2024-09-15 11:22:16 1459

原创 Elasticsearch 分析器的高级用法二(停用词,拼音搜索)

Elasticsearch 分析器高级用法(停用词,拼音搜索)停用词是指,在被分词后的词语中包含的无搜索意义的词。ES停用词过滤器,IK停用词过滤配置ES拼音搜索拼音分析器安装,使用,拼音分析器的配置属性解析

2024-05-24 15:01:29 1307

原创 Elasticsearch 分析器的高级用法一(同义词,高亮搜索)

在搜索场景中,同义词用来处理不同的查询词,有可能是想表达相同的搜索目标。例如:查询“北京大学”和“北大”时,其实时想搜索同一个内容。在ES内置的分词过滤器中,有两个同义词分词过滤器(synonym 和 synonym_graph)synonym_graph 相对于 synonym 对于多词同义词有更精确的效果官方建议,在索引时使用 synonym ,在 查询时 使用 synonym_graph。

2024-05-24 14:32:29 1500

原创 Elasticsearch 分析器(内置分析器,自定义分析器,IK分析器)

Elasticsearch分析器内置分析器自定义分析器中文分析器——IK分析器分析器的使用

2024-05-22 18:27:07 1923 1

原创 Elasticsearch文本搜索原理(倒排索引简介及建立过程,分析器,文本搜索过程)

Elasticsearch文本搜索原理(倒排索引简介及建立过程,分析器,文本搜索过程)

2024-05-22 18:07:32 842

原创 Elasticsearch文档基础操作(增删改,搜索)

Elasticsearch文档基础操作(增删改,搜索)文档创建文档删除文档修改搜索文档,全文搜索,搜索匹配,范围搜索,分页,Bool查询,复合查询match,match_phrase, terms range exists

2024-05-16 16:56:45 1488

原创 Elasticsearch基础使用介绍(数据类型,索引操作)

Elasticsearch(数据类型,索引)基础数据类型(kwyword,text,date,数值,boolean)复杂数据类型(数组,对象,地理位置)索引 创建,删除,查询修改索引,可修改部分,不可修改部分(主分片数,数据类型)索引别名alias,索引重建reindex

2024-05-16 15:56:51 1185

原创 Elasticsearch查看集群信息,设置ES密码,Kibana部署

Elasticsearch查看集群信息,设置ES密码,Kibana部署

2024-05-11 11:08:42 2816

原创 Elasticsearch入门基础和集群部署

ElasticSearch 是一个开源的分布式支持RESTful 搜索和分析引擎,可以用来解决使用数据库进行模糊搜索时存在的性能问题,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。ElasticSearch 使用Java语言开发,基于Lucene。ES 早期版本需要 JDK,在 7.X 版本后已经集成了 JDK,已无需第三方依赖。

2024-05-11 10:12:47 1242 1

原创 根据图片模板动态生成图片(Java)

Java实现根据证书模板动态生成图片

2024-04-22 23:39:06 2990

原创 Kafka入门介绍+集群部署+简单使用

Kafka是一个开源的分布式流处理平台主要有三个关键功能1. 发布订阅事件流(可以用作消息队列)2. 分布式持久化存储事件流(可以用作数据处理系统)3. 可以在事件发生时处理或回顾性的处理。Kafka入门介绍+集群部署+简单使用

2024-04-20 20:47:17 1462

原创 Java设计模式-结构型模式-装饰模式

允许向一个现有的对象动态地添加新的功能,同时不改变其结构。它是**继承的一种替代方案**,可以动态地扩展对象。有点像静态代理

2023-11-16 11:36:51 332

原创 Java设计模式-结构型模式-适配器模式

适配器模式,是将某个类的接口转化为客户端期望的另一个接口表示,主要的目的是**解决兼容性问题**,让原本不匹配不能一起工作的两个类可以协同工作

2023-11-15 21:17:53 1329

原创 Java设计模式-结构型模式-代理模式

创建一个代理对象来控制对原始对象的访问,可以用来扩展原始对象的功能,同时保护原始对象一般使用代理模式的目的有两个:1. 保护目标对象2. 增强目标对象代理模式有两种实现方案:静态代理 和 动态代理动态代理有两种实现方式:JDK动态代理和CGlib动态代理

2023-11-13 19:27:40 503

原创 Java设计模式-创建型模式-原型模式

原型模式以一个已经创建的对象为原型,复制一个新的对象深拷贝和浅拷贝

2023-11-13 19:16:02 552

原创 Java设计模式-创建型模式-建造者模式

建造者模式是将一个复杂对象的构件与表示分离,使得同样的构件过程可以创建不同的表示。@Builder 注解实现建造者模式

2023-11-10 20:28:54 1030

原创 Java设计模式-创建型模式-工厂模式

工厂模式简单工厂模式工厂方法模式抽象工厂模式

2023-11-10 10:28:15 191

原创 Java设计模式-创建型模式-单例模式

单例模式一个类只有一个实例可以分为两种 饿汉式 和 懒汉式

2023-11-09 15:14:03 509

原创 Java类加载机制(类加载器,双亲委派模型,热部署示例)

类加载过程类加载器双亲委派模型

2023-11-04 14:05:52 368

原创 JAVA反射(原理+使用)

代表一个类,Class对象表示某个类加载后在堆中的对象内部含有类的所有信息,是创建的对象的关键获得方法// 1. 通过对象类// 2. 通过全限定名Class<?// 3. 通过对象Class<?// 4. 通过类加载器(4种)Class<?// 5. 包装类// 此时获取的是 int.class// 这个才是真正的包装类的class//getName:获取全类名//getSimpleName 获取简单类名//Cat。

2023-10-19 21:00:14 246

原创 JAVA解析EXCEL(JExcelAPI,POI,EasyExcel)

Java 解析excel 的三种方式(JExcelApi,POI,EasyExcel)

2023-07-24 09:40:04 10599 2

原创 部署ElasticSearch和Kibana(docker)

基于docker部署 ElasticSearch 和 Kibana

2023-03-01 14:23:57 590

原创 Docker的部署与使用

Docker的部署与使用

2023-02-27 14:51:15 956 1

原创 动态代理(CGlib和jdk)

代理模式:动态代理jdk和cglib

2022-07-04 16:14:20 5019

原创 二分查找及相关题解析(Java)

二分查找,又称折半查找法基本思路:举一反三当有序序列可重复,且需要寻找的元素在序列中有多个时,依据普通的二分查找,找到的元素是随机的。问题1: 如何找到第一个出现的元素?问题2: 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。来自leetcode 题目链接分析:...

2022-06-11 23:38:50 348

原创 Linux安装nginx

在linux下安装nginx,首先需要安装 gcc-c++编译器。然后安装nginx依赖的pcre和zlib包。最后安装nginx即可。一、安装gcc-c++编译器,pcre包和zlib包yum install -y gcc-c++yum install -y openssl openssl-develyum install -y pcre pcre-develyum install -y zlib zlib-devel二、安装nginx在/usr/local/下创建文件ngin.

2022-04-07 18:00:03 3302 1

原创 AXURE RP EXTENSION FOR CHROME (无需下载)

问题描述原型打不开,缺少AXURE 插件因为某些原因,根据谷歌的提示,无法下载AXURE插件这里提供一下免下载的方法!!!一劳永逸方法一使用windows自带的浏览器,没错,就是那个没人用的浏览器虽然不好用,但是他能打开(不用下载插件)方法二(推荐)认真观察,其实答案就在你身边,但我们总是一次次地擦肩而过所需要的插件就在你的原型中!!!!路径原型文件->resources->chrome->axure-chrome-extension.crx找到文件axure-

2021-12-24 20:04:35 1361

原创 MySQL 日期函数总结

now()CURRENT_DATECURRENT_TIMECURRENT_TIMESTAMPsysdate()date_format()curdate()curtime()unix_timestamp()from_unixTime()date_add()datediff()

2021-12-07 16:10:00 1034

原创 OutLook2016 如何关闭后不退出,后台运行?

目录前言1. 下载 插件并安装2. 配置OutLook前言OutLook界面整洁,功能强大。但每次关闭后,都需要重新启动,才能接受邮件。平时,我们都习惯了看完邮件,直接点x 关闭窗口。这往往会导致错失重要邮件,这一点非常不友好。如果能关闭的时候,可以让outlook在后台继续运行就好了。好在国外大神为这一功能开发了插件,一键安装。操作简单。下面是安装细节1. 下载 插件并安装https://download.csdn.net/download/ren9436/34385133下载并解压

2021-10-25 19:34:35 10636 3

原创 OutLook添加网易邮箱,QQ邮箱

文章目录一、OutLook添加网易邮箱1. 登录网易邮箱2. 开启POP3/SMTP/IMAP功能(以POP3为例)3. OutLook添加账户二、OutLook添加QQ邮箱1.登录QQ邮箱2. 开启POP3/SMTP/IMAP功能(以IMAP为例)3. OutLook添加QQ邮箱账户一、OutLook添加网易邮箱1. 登录网易邮箱2. 开启POP3/SMTP/IMAP功能(以POP3为例)一定记住授权码 只显示一次用作登录密码 GYHWAUEBECOVXQDB3. OutLook添加

2021-10-22 15:44:53 4811

原创 Fiddler手机抓包及简单使用(保姆级教程)

Fiddler与wireshark对比Fiddler是在windows上运行的程序,专门用来捕获HTTP,HTTPS的。wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容Fiddler下载与安装官网地址https://www.telerik.com/fiddler打开可能有点慢最新版是收费的,作为白嫖党,自然是下载 免费的经典版随便回答下他们的问题,开始下载下载完成后,根据提示,完成安装。电脑抓包设置Fi

2021-10-10 19:02:45 11019

原创 nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 异常

出现此异常,一般是动态sql的问题,根据后面的提示信息,找到对应的sql,检查动态sql语法。问题描述异常信息:nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 'ides'. Return value (806) was not iterable.根据异常提示信息,找到ides所在的 动态sql语句。<foreach collection="ides"

2021-09-24 14:48:43 21092

原创 总结:通过request可以获取的路径(getRealPath,getServletPath,getContextPath,getResourcePaths)

测试背景请求路径为http://localhost:8081/MVCTest_war_exploded/test/path项目路径D:\Work\MVCTest\target\MVCTest-1.0-SNAPSHOT\URL相关路径request.getRequestURL()结果:http://localhost:8081/MVCTest_war_exploded/test/path返回请求全路径request.getRequestURI()结果:/MVCTest_war_expl

2021-09-08 19:24:30 721

原创 Java借助RestTemplate 模拟发送formdata请求(上传文件至fastdfs并获取返回值)

导包import com.alibaba.fastjson.JSONObject;import org.junit.jupiter.api.Test;import org.springframework.core.io.FileSystemResource;import org.springframework.core.io.InputStreamResource;import org.springframework.core.io.Resource;import org.springframe

2021-09-01 14:52:30 5868

Java23种设计模式-思维导图

Java 23种设计模式 软件设计原则 创建者模式 结构型模式 行为型模式 记录23种设计模式的区别,优缺点,以及使用场景和使用方式

2023-11-06

Kettle9.4版本 Pentaho Data Integration 9.4 PDI 9.4

Kettle 改名啦!!! 现在叫 Pentaho Data Integration Kettle9.4版本 Pentaho Data Integration 9.4 PDI 9.4 下载地址: https://www.hitachivantara.com/en-us/products/pentaho-platform/data-integration-analytics/pentaho-community-edition.html https://sourceforge.net/projects/pentaho/

2023-10-26

鲁班学院MySQL课堂笔记(B+树索引,事务,锁)

鲁班学院Mysql课堂笔记,探索InnoDB索引原理,数据库事务,锁的概念 一、InnoDb行格式、数据页结构以及索引底层原理分析 二、B+树索引实战 三、Mysql事务以及锁原理讲解

2020-09-29

Outlook2016关闭为最小化.rar

outlook2016 关闭时最小化,亲测有效。 一键安装插件

2021-10-25

KeepOutlookRunning.rar

KeepOutLookRunning win64和win32版本

2021-10-25

Outlook2016关闭为最小化.rar

outlook2016 关闭时最小化,亲测有效。 一键安装插件

2021-10-23

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

TA关注的人

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