- 博客(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 &
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
原创 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入门基础和集群部署
ElasticSearch 是一个开源的分布式支持RESTful 搜索和分析引擎,可以用来解决使用数据库进行模糊搜索时存在的性能问题,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。ElasticSearch 使用Java语言开发,基于Lucene。ES 早期版本需要 JDK,在 7.X 版本后已经集成了 JDK,已无需第三方依赖。
2024-05-11 10:12:47
1242
1
原创 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设计模式-创建型模式-建造者模式
建造者模式是将一个复杂对象的构件与表示分离,使得同样的构件过程可以创建不同的表示。@Builder 注解实现建造者模式
2023-11-10 20:28:54
1030
原创 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
原创 二分查找及相关题解析(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
Kettle9.4版本 Pentaho Data Integration 9.4 PDI 9.4
2023-10-26
鲁班学院MySQL课堂笔记(B+树索引,事务,锁)
2020-09-29
MySQL5.7.34 索引 回表查询的问题
2021-07-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅