JellyfishMIX
码龄7年
求更新 关注
提问 私信
  • 博客:232,892
    问答:1,321
    动态:67
    234,280
    总访问量
  • 98
    原创
  • 179
    粉丝
  • 136
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
加入CSDN时间: 2018-11-19

个人简介:qunar -- java 开发

博客简介:

JellyfishMIX 的博客

博客描述:
Talk is cheap. Show me the code. --Linus Torvalds
查看详细资料
个人成就
  • 获得436次点赞
  • 内容获得131次评论
  • 获得868次收藏
  • 代码片获得3,244次分享
  • 博客总排名13,633名
  • 原力等级
    原力等级
    4
    原力分
    980
    本月获得
    1
创作历程
  • 1篇
    2025年
  • 6篇
    2024年
  • 15篇
    2023年
  • 38篇
    2022年
  • 1篇
    2021年
  • 22篇
    2020年
  • 17篇
    2019年
成就勋章
TA的专栏
  • devops
    1篇
  • spring-ioc 源码分析
    13篇
  • jdk 源码分析
    10篇
  • Java
    65篇
  • kafka
    4篇
  • 操作系统
    1篇
  • 设计模式
    5篇
  • java NIO
    2篇
  • spring-web
    4篇
  • tomcat
    1篇
  • Database
    4篇
  • elasticsearch
    2篇
  • redis
    4篇
  • 技术随笔
    6篇
  • dubbo 源码分析
    2篇
  • apache.commons 源码分析
    1篇
  • guava 源码分析
    2篇
  • 数据结构
    1篇
  • docker
    1篇
  • MacOS
    2篇
  • Linux
    1篇
  • c
  • Server
    4篇
  • SSM
    4篇
  • git
    1篇
  • GitHub
    1篇
  • React
    2篇
  • Developer Tools
    2篇
  • css
    1篇
  • 计算机理论与基础
    2篇
  • 算法
    3篇

TA关注的专栏 4

TA关注的收藏夹 0

TA关注的社区 3

TA参与的活动 1

兴趣领域 设置
  • Java
    javatomcatspringmaven
  • 后端
    sqlmysql架构分布式中间件
  • 服务器
    linuxcentos缓存
创作活动更多

『AI先锋杯·14天征文挑战第9期』

在人工智能技术爆发的时代,AI工具、大模型及行业应用正深刻改变开发者的工作模式与各领域的发展格局。从智能编码助手到自动化测试平台,从大模型落地实践到垂直行业解决方案,AI正成为提升效率、驱动创新的核心引擎。 本次征文邀请开发者、行业从业者分享AI技术落地的实战经验,探讨AI工具如何优化开发流程、大模型如何重塑行业场景,以及AI在编程、测试、数据分析等领域的前沿应用。 让我们共同挖掘AI技术的无限可能,解锁效率提升与产业升级的密码!

76人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

spring boot 项目 prometheus 自定义指标收集区分应用环境集群实例ip,使用 grafana 查询--方法耗时分位数指标

介绍了方法耗时分位数指标的收集和查询。通过 prometheus 收集,grafana 查询视图。自定义指标可以区分应用、环境、集群、实例。
原创
博文更新于 2025.11.28 ·
2018 阅读 ·
31 点赞 ·
0 评论 ·
20 收藏

spring bean 创建过程源码分析(AbstractBeanFactory, AbstractAutowireCapableBeanFactory)

AbstractBeanFactory 实现了 ConfigurableBeanFactory 接口,提供了实例化、定位、配置应用程序中的对象(bean)及建立这些对象间的依赖功能。继承了 DefaultSingletonBeanRegistry,提供了 bean 三级缓存机制。
原创
博文更新于 2025.11.28 ·
924 阅读 ·
30 点赞 ·
0 评论 ·
9 收藏

java classpath 是什么,直观展示

1. classpath 是启动 jar 包时指定的,通常 classpath 包含: 1. 依赖的 jar 包在机器上的路径。 2. 项目代码(工程中的 java 路径下的文件)。 3. resources 路径下的文件。2. 可以在 javac 编译后的代码中看到除依赖以外的 classpath 内容。
原创
博文更新于 2024.07.15 ·
934 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

观察 jvm 运行时数据区内存大小(native memory tracking)

jvm 运行时数据区包括且不限于以下几个部分:1. 堆(heap)。2. 方法区(method area)。3. 虚拟机栈(vm stack)。4. 本地方法栈(native method stack)。5. 程序计数器(program counter)。观察 jvm 运行时数据区内存情况可以使用 jcmd 命令。
原创
博文更新于 2024.06.18 ·
766 阅读 ·
7 点赞 ·
0 评论 ·
4 收藏

获取泛型,泛型擦除,TypeReference 原理分析

类的字节码 Attributes -> Signature 属性中,记录了类签名,类签名会显式指定传递给父类的泛型。这是根据子类获取向父类传递的泛型理论基础,及 TypeReference 的理论基础
原创
博文更新于 2024.06.18 ·
1618 阅读 ·
19 点赞 ·
0 评论 ·
32 收藏

kafka 消息防丢失/消息防重复设计分析

消息语义(诉求)有三种。分别是: 消息最多传递一次(消息不重复), 消息最少传递一次(消息不丢失), 消息有且仅有一次传递(消息不重复且不丢失)。
原创
博文更新于 2024.06.11 ·
1716 阅读 ·
15 点赞 ·
0 评论 ·
19 收藏

kafka 高吞吐设计分析

非零拷贝发送数据过程: 用户执行系统调用读磁盘,用户态切换成内核态。硬盘上的数据通过 DMA 读入内核空间后,cpu 拷贝至用户空间,切换回用户态。执行网络 IO 系统调用,用户态切换成内核态,cpu 拷贝数据至内核空间(socket 缓存),通过 DMA 写入网卡。存在两次 cpu 拷贝和两次内核态用户态切换浪费。
原创
博文更新于 2024.06.11 ·
711 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

操作系统硬中断/软中断介绍

参考 linux 硬中断软中断的思路,为了避免中断丢失和中断可能占用 cpu 时间过长且未经操作系统调度的问题,把一次完整的中断拆为(硬中断 + 软中断)两部分执行。
原创
博文更新于 2024.01.18 ·
803 阅读 ·
10 点赞 ·
0 评论 ·
8 收藏

设计模式 -- 观察者模式

观察者模式也被称为发布订阅模式。在 GoF 的《设计模式》一书中,它的定义是这样的:中文翻译: 在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。从模型来讲,被依赖的对象叫作被观察者(Observable),依赖的对象叫作观察者(Observer)。
原创
博文更新于 2023.11.14 ·
780 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

synchronized 的 monitor 机制

monitor 是 synchronized 中用以实现线程之间的互斥与协作的主要手段。每个 monitor 在每个时刻,只能被一个线程持有,该线程就是 activeThread,其它线程都是 waitingThread,分别在两个队列 entrySet 和 waitSet 里等候。在 entrySet 中等待的线程状态是 waiting for monitor entry,而在 wait set 中等待的线程状态是 in Object.wait()。
原创
博文更新于 2023.10.25 ·
1367 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

Failed to get field handle to set library path 问题解决(jdk17 升级)--附 xgboost4j 源码分析

ClassLoader 的 usr_paths 字段在高版本 jdk(例如 jdk17) 中没了,因此 ClassLoader.class.getDeclaredField("usr_paths") 会抛异常 NoSuchFieldException, try catch 把 NoSuchFieldException 的异常栈吞掉了,换成了 IOException 继续网上抛,因此 catalina.out 中异常栈最后在 IOException 处就断掉了。
原创
博文更新于 2023.10.25 ·
706 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

xml schema 详解

1. xml schema 是定义 xml 文件的合法构建模块,可以理解为是一种编写 xsd 或 xml 文件的语法。使用 schema 语法编写的文件后缀名可以是 .xsd 或 .xml。2. xsd(xml schema definition) 文件,后缀名 .xsd,定义 xml 文件中可以出现哪些元素, 属性, 元素之间的关系, 顺序, 元素的数量, 元素或属性的类型和值的范围等,是对 xml 文件的一种约束方式。xsd 文件也使用 schema 语法编写。
原创
博文更新于 2023.10.25 ·
1541 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

ThreadPoolExecutor 源码分析

ThreadPoolExecutor 使用一个线程反复执行 Runnable 的方式: while 循环里反复调用 getTask 从阻塞队列里获得 Runnable, 然后执行 Runnable#run 方法,调用传入 runnable 时重写的 run 方法。
原创
博文更新于 2023.06.15 ·
386 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

kafka 对 java NIO 的封装

NetworkReceive: 对 NIO 中读 Buffer 的封装,用来缓存接收的数据。NetworkSend: 对 NIO 中写 Buffer 的封装,用来缓存发送的数据。KafkaChannel: 把 TransportLayer, NetworkReceive 和 NetworkSend 又做了一次封装,隐藏了底层组件的细节。
原创
博文更新于 2023.06.09 ·
1393 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

javaNIO -- ByteBuffer 原理机制

ByteBuffer 可以理解为是一个 byte 数组,用于读取与写入。ByteBuffer 通过一些精巧的属性和方法, 更高效地使用内存空间。
原创
博文更新于 2023.06.04 ·
625 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

kafka-Producer Sender 源码分析

发送请求分为两步。1. 第一步是消息预发送,Sender 从 RecordAccumulator 拉取要发送的消息集合,封装成 ClientRequest,传递给 NetworkClient。NetworkClient 首先根据 ClientRequest 构造 InFlightRequest,InFlightRequest 表示已发送但还未收到响应的请求。然后根据收到的 ClientRequest 构造 NetworkSend 类对象,放入到 KafkaChannel 的缓存里,消息预发送结束。
原创
博文更新于 2023.05.16 ·
840 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

spring-web HandlerAdapter 源码分析

HandlerAdapter 存在的原因是, 处理器(handler)的实现有多种,例如实现 Controller 接口,实现 HttpRequestHandler 接口,或者使用 @RequestMapping 注解将方法作为一个处理器等。导致 springMVC 无法直接执行这个处理器,所以这里需要一个适配器(adapter),由它去执行处理器(handler)。
原创
博文更新于 2023.05.09 ·
788 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

tomcat-connector 源码分析

NioEndpoint 组件是 IO 多路复用模型的一种实现,包含 Acceptor, Poller, LimitLatch, SocketProcessorBase, Executor 共 5 个组件。主体结构 Acceptor + Poller + Executor 线程池是典型的主从 reactor 模式。
原创
博文更新于 2023.03.09 ·
904 阅读 ·
3 点赞 ·
0 评论 ·
3 收藏

ReentrantLock 源码分析

tryAcquire 方法由子类实现 if(!}AbstractQueuedSynchronizer 的 acquire 方法是一个模板方法。模板方法的定义:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。
原创
博文更新于 2023.03.03 ·
556 阅读 ·
1 点赞 ·
2 评论 ·
0 收藏

AQS(AbstractQueuedSynchronizer) 源码分析

AQS 全称 AbstractQueuedSynchronizer,是 juc 包(java.util.concurrent)中一个同步器开发框架,用于支持上层的锁。本文逐行分析核心逻辑。
原创
博文更新于 2023.03.03 ·
423 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏
加载更多