- 博客(81)
- 收藏
- 关注
原创 PageHelper分页插件最新源码解读及使用
本文详细的介绍了pagehelper的使用以及通过debug一步一步的源码解读,带你深入的了解pagehelper是怎么工作的
2024-01-23 08:51:21
2680
11
原创 【Java】和面试官谈策略模式
本篇文章将通过策略模式的概念和优缺点以及几个完整的示例来讲解如何在工作和学习当中将策略模式融入的你的业务当中
2024-01-02 09:05:57
1670
21
原创 【MAC】iStatistica Pro — 硬件性能状态监控工具
身为一个IT 专业人士或想掌握Mac 系统状况的同学来说,我觉得一定要安装一套专业又好用的系统监测工具,这款iStatistica Pro 就是你很不错的选择,不仅重要的CPU、内存、硬盘、网路、蓝牙设备等资讯都有,界面也设计漂亮又简洁,另外还提供分析资料夹各文件占用多少百分比容量的功能,让你能快速找出无用的大文件。也支持常驻在右上角Menu Bar。
2023-12-12 10:31:56
3146
16
原创 通过okhttp调用SSE流式接口,并将消息返回给客户端
通过一个完整的java示例来演示如何通过okhttp来调用远程的sse流式接口。背景:我们有一个智能AI的聊天界面,需要调用三方厂商的大模型chat接口,返回答案(因为AI去理解并检索你的问题的时候这个是比较耗时的,这个时候客户端需要同步的在等待最终结果),所以我们的方案是通过流的方式把结果陆续的返回给客户端,这样能极大的提高用户的体验。
2023-10-13 17:25:35
14583
32
原创 RocketMQ 原理介绍及详细安装教程
本文详细介绍了RocketMq的相关概念,以图文的方式描述了相关运行原理,以及详细的安装教程和管理端工具的安装和使用。
2023-01-29 15:21:20
5197
52
原创 SpringCloud Alibaba微服务 -- Seata的原理和使用
摸了两天鱼总结的分布式事务 seata 的相关原理和使用,绝对史诗级详细,绝对全网最保姆,还没有学习seata的同学快来看看吧~
2023-01-17 17:04:21
5473
33
原创 SpringCloud Gateway 实现自定义全局过滤器 + JWT权限验证
1、gateway filter的生命周期Spring Cloud Gateway同zuul类似,有“pre”和“post”两种方式的filter。客户端的请求先经过“pre”类型的filter,然后将请求转发到具体的业务服务,收到业务服务的响应之后,再经过“post”类型的filter处理,最后返回响应到客户端pre类型的filter:在业务逻辑之前post类型的filter:在业务逻辑之后2、gateway filter的应用场景。...
2022-08-09 18:14:02
10073
7
原创 SpringCloud Gateway的使用 + Nacos动态路由
本文详细的分析gateway是如何使用和如何实现的,以及动态路由在gateway中的应用
2022-07-21 15:50:00
23308
35
原创 SpringCloud Alibaba微服务-- Sentinel的使用(保姆级)
sentinel的使用sentinel保姆级教程sentinel的下载及启动
2022-07-04 17:52:10
21252
14
原创 SpringCloud Alibaba微服务 -- OpenFeign的使用(保姆级)
openfeign的使用、springcloud微服务之间的调用,fallback的使用
2022-07-04 15:10:23
10890
33
原创 源码解读面试中最容易被问到的线程池
本文介绍了线程池的核心概念与实现原理。线程池通过复用固定数量的线程来避免频繁创建和销毁线程的开销。Java中的线程池基于ThreadPoolExecutor实现,其核心结构包括任务队列(workQueue)和工作线程集合(workers)。ThreadPoolExecutor通过构造方法配置核心线程数、最大线程数、任务队列等参数。执行流程主要包括:当线程数未达核心线程数时创建新线程执行任务;线程忙碌时将任务放入队列;队列满时创建非核心线程;仍无法处理则执行拒绝策略。文章详细解析了execute()和addW
2025-12-17 15:38:00
739
原创 从16字节到32字节:一个Java对象在堆里到底藏了多少秘密?
Java实例对象在堆内存中的存储结构包括对象头、实例数据和对齐填充三部分。对象头包含Mark Word和类型指针,64位JVM中通常占16字节。实例数据大小取决于字段类型,基本类型如int占4字节,引用类型在压缩后占4字节。JVM要求对象大小为8字节倍数,不足时会填充补齐。通过优先使用基本类型、优化字段排列和启用指针压缩可减少内存占用。理解对象内存布局有助于性能优化,在高并发和大数据场景尤为重要。
2025-12-17 15:30:36
781
原创 所谓万变不离其宗,要想搞定面试老大难“锁”,不如先看看AQS
AQS(AbstractQueuedSynchronizer)是Java并发编程中的核心同步框架,为ReentrantLock、Semaphore等同步工具提供基础实现。其核心包括:1)volatile state变量表示同步状态;2)FIFO双向链表等待队列管理阻塞线程。AQS支持独占模式(如ReentrantLock)和共享模式(如Semaphore),分别通过tryAcquire/tryRelease和tryAcquireShared/tryReleaseShared方法实现。ReentrantLoc
2025-12-01 13:52:39
796
原创 源码解读工作中最常用到的Spring Security安全框架
本文介绍了使用Spring Security和JWT实现登录验证的基本流程。主要包括:1)引入Spring Security依赖;2)配置SecurityConfig类定义安全规则;3)创建用户实体实现UserDetails接口;4)自定义UserDetailsService加载用户信息;5)编写JWT过滤器进行令牌验证。关键点包括配置无状态会话管理、CORS设置、密码加密以及将JWT过滤器添加到安全链中。该实现支持基于令牌的身份验证,适用于前后端分离架构。
2025-11-06 10:38:29
909
原创 Jenkins 自动化看这一篇就够了
本文介绍了Jenkins的基本功能、安装步骤及Java项目部署方法。Jenkins是一款开源的CI/CD工具,支持自动化构建、测试和部署,具有高度可配置、跨平台、插件丰富等特点。文章详细讲解了Jenkins的安装要求(Java环境、Docker等),并通过下载war包直接启动的方式完成安装。随后介绍了如何配置JDK、Maven、SSH凭证和Gitee插件,并演示了创建Maven项目、配置源码管理、构建命令以及通过SSH部署到服务器的完整流程。最后提供了常见问题解决方法,帮助读者快速上手Jenkins实现自动
2025-09-16 17:48:35
961
原创 分布式场景下如何用 Redis Pub/Sub + WebSocket 实现二维码确认?这篇详解来了!
摘要: 针对分布式环境下WebSocket消息跨实例传递问题,本文提出基于Redis发布/订阅模式的解决方案。当用户扫码确认请求与WebSocket连接不在同一实例时,通过Redis频道广播消息(发布端),目标实例订阅该频道并触发WebSocket推送(订阅端)。方案实现包括:1) Redis配置类初始化监听容器;2) 监听器反序列化消息并调用WebSocket发送;3) 业务服务发布扫码确认事件。该方案兼顾实时性与扩展性,但需注意异步通信的可靠性风险。代码示例展示了Spring Boot整合Redis P
2025-06-16 14:35:09
539
1
原创 Java内存泄露生产环境排查过程,通透了
昨天线上环境崩了java堆内存溢出。。。报错:java.lang.OutOfMemoryError: Java heap space下面我将我排查问题的思路和过程记录了下来由于是堆内存溢出异常,所以我先检查了一下服务器的负载和堆内存试用情况通过 top 命令查看服务器进程情况,发现pid为1的一个java进程cpu使用率达到90%多这个进程正好是出现异常的这个java应用通过 jps 命令也可以查看正在运行的java应用接下来查看这个应用的堆内存使用情况通过 jmap -heap pid 这个命令
2025-05-16 14:58:15
1131
原创 如何优雅的实现自定义注解?两个常见场景轻松拿捏
你是否还在程序中使用过多的冗余代码,来试试自定义注解吧,让你的程序轻起来,两个常见场景教你如何实现自定义注解。
2025-01-10 10:29:27
825
原创 解锁黑科技!百度AppBuilder助你秒变开发者,轻松实现文心一言
本文的主要内容为介绍百度Appbuilder的使用并且基于Appbuilder搭建自己的Ai应用,最后如何将自己AI应用集成到自己的开发环境当中,无需深厚编程基础,即可将创意转化为现实,打造属于自己的智能助手
2024-08-20 13:19:35
2058
4
原创 漏桶和令牌桶有啥区别?
漏桶和令牌桶都是服务限流中常用的算法,面试和工作中会被经常问起和提到。那么这两种算法有什么区别以及他们是如何实现的呢?他们之间的关系是都是有一个固定容量的桶,都是按照固定的速率向桶中加水或令牌,但是他们有一个最大的区别,那就是,它会按照固定的速率把水流出,所以不管输入流量如何变化,漏桶输出流量都是。而令牌桶的底部不是漏的,他不会固定的速率流出,只会以固定的速率向桶中加入令牌。
2024-07-16 08:57:43
1484
原创 白驹过隙,沧海桑田
当你回首往昔好多人都已经不在身边了,好多事都已经过去了。随着时间的流逝,记忆便会逐渐变得模糊,如果某个知识或者内容特别重要,如果有一天的某个瞬间让你感到特别幸福,请一定要记录下来。
2024-06-21 16:09:13
575
7
原创 Timeout waiting for connection from pool 问题排查
Timeout waiting for connection from pool 实际场景问题排查及方案解决
2024-06-12 17:54:11
3358
1
原创 一张图读懂大模型应用是如何工作的,一图胜千言
用一张图,带你轻松读懂大模型应用的工作原理。不需要复杂的代码和艰深的理论,只需要一张图,就能让你对大模型有一个全新的认识
2024-05-20 16:06:22
1815
原创 只需三步,教你轻松搞定内网穿透
在开发过程中,你是否也遇到外网访问内部服务接口的需求,如三方服务回调。但本地或测试环境使用内网,外网无法直接访问。本篇文章就教你如何通过内网穿透来解决此类问题。
2024-05-13 11:17:11
4173
8
原创 深度解析JVM世界:常见的垃圾回收器
本篇文章的主要内容是讲解常见的垃圾收集器,垃圾收集器是Java虚拟机中负责自动管理内存的重要组件。它的主要任务是自动回收不再使用的对象,以防止内存泄漏,并使得程序员无需关心内存管理问题,专注于业务逻辑的实现。
2024-05-07 08:46:07
2111
1
原创 深度解析JVM世界:垃圾判断和垃圾回收算法
本文深度解析了JVM中的垃圾判断和回收算法。垃圾判断通过引用计数和可达性分析识别无用对象,而垃圾回收则采用标记-清除、复制、标记-整理及分代收集等算法。这些机制共同实现JVM自动内存管理,优化算法选择可提升程序性能与稳定性。
2024-03-27 13:26:08
965
1
原创 深度解析JVM世界:JVM内存分配
本篇文章的主要内容是介绍JVM内存的分配方式、JVM内存的快速分配策略、JVM的逃逸分析和堆内存的分代思想几部分内容。
2024-03-26 09:39:28
1435
1
原创 深度解析JVM世界:JVM内存结构
本文全面剖析了java虚拟机的内容结构,包括方法区、堆内存、栈内存等关键组件。通过理解jva内存结构,读者可有效的管理java应用程序的使用,提升程序的稳定性。
2024-03-25 10:10:22
1630
1
原创 Python爬虫入门:HTTP与URL基础解析及简单示例实践
本文介绍了HTTP协议的工作原理、URL的构成及其各部分含义,并通过一个简单的Python爬虫示例展示了如何发送HTTP请求并解析响应内容,帮助初学者快速入门Python爬虫开发。
2024-03-21 08:45:26
2966
27
原创 使用CountDownLatch模拟王者荣耀玩家进度加载
本篇文章详细的讲解了如果使用CountDownLatch,然后通过源码的方式让你了解CountDownLatch是怎么工作的,最后通过大家熟知的王者荣耀来模拟如何应用CountDownLatch,本期干货满满
2024-03-05 09:52:41
1054
1
原创 SpringBoot助力!轻松实现微信模版消息推送
通过本教程的学习,您将掌握如何在Spring Boot项目中集成微信SDK,如何编写代码发送微信模板消息,并了解整个推送的过程。
2024-02-19 09:00:24
3883
5
原创 基于MongoDB实现聊天记录的存储
本文详细的讲解了mongodb的特点和应用场景,并且通过实际场景来演示如何通过mongodb来存储和查询聊天记录
2024-02-01 10:45:42
4062
13
原创 一文读懂RabbitMQ核心概念及架构
本篇文章详细的介绍了rabbitmq的优缺点和使用场景,并通过架构图的方式对rabbitmq的原理进行了讲解,最后还整理了rabbitmq的语法以及与springboot的集成
2024-01-24 10:37:18
1719
6
通过okhttp调用SSE流式接口,并将消息返回给客户端(源码)
2023-10-17
关于#Websocket内存溢出#的问题,如何解决?(语言-java)
2024-12-04
如何使用mongoexport导出带有聚合查询条件的数据
2023-11-08
关于#macOs#的问题,如何解决?
2023-04-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅