cui_hao_nan
码龄8年
求更新 关注
提问 私信
  • 博客:90,336
    90,336
    总访问量
  • 211
    原创
  • 252
    粉丝
  • 16
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
加入CSDN时间: 2018-05-04
博客简介:

cui_hao_nan的博客

查看详细资料
个人成就
  • 获得825次点赞
  • 内容获得9次评论
  • 获得836次收藏
  • 代码片获得346次分享
  • 博客总排名148,437名
  • 原力等级
    原力等级
    3
    原力分
    438
    本月获得
    1
创作历程
  • 86篇
    2025年
  • 2篇
    2024年
  • 123篇
    2023年
成就勋章
TA的专栏
  • 后端技术总结
    84篇
  • 力扣周赛
    2篇
  • 代码随想录
    76篇
  • 统计机器学习导论
    15篇
  • 图解机器学习
    29篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

创作活动更多

「谁说嵌入式只是调包和焊板子?」—— 2026嵌入式全栈技术征锋令

谁说嵌入式只会“Ctrl+C 调包”和“拿电烙铁焊板子”?2026嵌入式全栈技术征锋令正式启幕! 本次活动专为硬核硬件/软件开发者打造,无论你是刚玩转裸机外设的萌新,还是精通RTOS调度、死磕底层驱动的行业老手,亦或是执掌系统架构的大神,这里都是你证明实力的舞台! 拒绝表面功夫,每一行代码,都有撬动硬件的力量!晒出你的硬核工程实战,为嵌入式开发者的全栈硬实力正名!

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

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

cursor提示词学习

【代码】cursor提示词学习。
原创
博文更新于 2025.09.25 ·
744 阅读 ·
13 点赞 ·
0 评论 ·
9 收藏

AI超级智能体项目总结

通过实现 CallAroundAdvisor 和 StreamAroundAdvisor 接口中的核心方法,具体而言:①继承 CallAroundAdvisor 和 StreamAroundAdvisor 两个接口,以支持同步和流式两种对话模式的日志处理。②实现 aroundCall() 方法,用于拦截并打印非流式请求和响应。实现 aroundStream() 方法,处理流式响应并聚合输出日志,配合 MessageAggregator 实现完整输出。
原创
博文更新于 2025.07.30 ·
1241 阅读 ·
22 点赞 ·
0 评论 ·
17 收藏

面试刷题平台项目总结

面试刷题平台是一款基于 Spring Boot + Redis+ MySQL+ Elasticsearch 的 面试刷题平台,运用 Druid + HotKey + Sa-Token+ Sentinel 提高了系统的性能和安全性。第一阶段,开发基础的刷题平台,带大家熟悉项目开发流程,实战 Spring Boot 应用的快速开发。
原创
博文更新于 2025.07.29 ·
864 阅读 ·
23 点赞 ·
0 评论 ·
17 收藏

智能云图库项目

平台基于 Spring Boot + Redis + COS + AI 绘图 + RabbitMQ + WebSocket,支持图片上 传、存储、协作编辑与智能分析。平台分为公共图库、私有图库和企业空间,支持多账号权限体系与实时协作。第一阶段,开发公共图库平台。实战Spring Boot图片素材网址的快速开发,重点学习文件存管业务的开发和优化技巧。第二阶段,对项目的C端功能进行扩展。用户可开通私有空间,并对空间图片进行多维检索、扫码分享、批量管理、快速编辑和用量分析。
原创
博文更新于 2025.07.29 ·
938 阅读 ·
22 点赞 ·
0 评论 ·
16 收藏

AI知识点——MCP

MCP 就像 AI 世界的 USB-C 接口,各种数据源和工具只要遵循 MCP 标准,LLM 就能即插即用,轻松访问数据库、API 等资源,大幅拓展能力和应用场景。
原创
博文更新于 2025.07.21 ·
661 阅读 ·
6 点赞 ·
0 评论 ·
6 收藏

AI知识点——RAG

在 RAG 中,Rerank 是一个对初步检索返回的候选文档列表进行再次排序的过程。因为初步检索需要快速地在海量的文档中找出大致相关的文档,其需要考虑效率,所以查找出的文档不会非常准确,这步是粗排。在已经筛选的相关的文档中再进行精筛,找出匹配度更高的文档让其排在前面,选其中的 Top-K然后扔给大模型,提高答案的准确性,这就是 Rerank,也是精排。Rerank 需要怎么做?初步检索生成候选文档:使用速度较快的传统检索方法获得一组候选文档。
原创
博文更新于 2025.07.21 ·
761 阅读 ·
21 点赞 ·
0 评论 ·
8 收藏

Spring Boot总结

配置中心是一个用于配置集中化管理且支持动态更新、分发配置文件的工具(服务)它实现了配置的统一管理和动态刷新。当配置信息发生变化时,配置中心可以自动通知服务实例进行配置更新,这样就可以实例无需重启即可应用最新的配置,从一定程度上减少了系统访问的空窗期,非常灵活方便。Spring Cloud Config:Spring 提供的分布式配置管理工具,支持从 Git、SVN 等版本控制系统加载配置。Apollo:由携程开源的配置管理中心,支持配置的实时推送和权限管理。
原创
博文更新于 2025.07.20 ·
968 阅读 ·
21 点赞 ·
0 评论 ·
12 收藏

计算机网络

TCP 的连接就是:TCP 为每个数据流初始化并维护的某些状态信息(这些信息包括 socket、序列号和窗口大小),称为连接。这些信息主要是为了实现可靠性和流量控制机制。TCP 面向连接的并不是真的是拉了一条线让端与端之间连起来,只是双方都维护了一个状态,通过每一次通信来维护状态的变更,使得看起来好像有一条线关联了对方。TCP 中的 Socket、序列号和窗口大小1、Socket:在 TCP/IP 协议中,socket 是通信的端点。
原创
博文更新于 2025.07.19 ·
600 阅读 ·
10 点赞 ·
0 评论 ·
11 收藏

操作系统总结

物理地址:物理地址是计算机内存中真正的内存单元地址,由内存管理单元(MMU)直接访问。它表示数据在物理内存中的实际存储位置,是由硬件层面决定的。物理地址直接对应到内存芯片上的某个位置,它是CPU在访问内存时经过地址转换后的实际地址。逻辑地址(虚拟地址)逻辑地址是程序在运行时看到的地址空间,由CPU生成,用于内存的访问和操作。逻辑地址在程序编写和编译时使用,并由操作系统通过地址转换机制(如页表)映射到物理地址。
原创
博文更新于 2025.07.19 ·
727 阅读 ·
19 点赞 ·
0 评论 ·
7 收藏

消息队列总结

对比维度RabbitMQRocketMQKafka定位功能丰富的消息中间件分布式高可用消息中间件高吞吐分布式日志系统 / 消息队列协议支持自研协议,支持部分 RocketMQ 专属特性自研 TCP 协议吞吐量中等(万级 TPS)高吞吐(10-20 万 TPS)极高吞吐(百万级 TPS)延迟低延迟,毫秒级毫秒级,RT 性能好延迟相对高,适合大数据场景可靠性高,支持消息确认、持久化高,支持消息可靠投递,事务消息高,分区副本机制,适合大规模持久化可用性单节点或集群(镜像队列),集群复杂。
原创
博文更新于 2025.07.18 ·
942 阅读 ·
5 点赞 ·
0 评论 ·
17 收藏

Redis总结

Redis 集群(Redis cluster)是通过多个 Redis 实例组成的,每个实例存储部分的数据(即每个实例之间的数据是不重复的)。具体是采用哈希槽(Hash Slot)机制来分配数据,将整个键空间划分为 16384个槽(slots)。每个Redis 实例负责一定范围的哈希槽,数据的 key 经过哈希函数计算后对 16384 取余即可定位到对应的节点。客户端在发送请求时,会通过集群的任意节点进行连接,如果该节点存储了对应的数据则直接返回,反之该节点会根据请求的键值计算哈希槽并路由到正确的节点。
原创
博文更新于 2025.07.18 ·
589 阅读 ·
3 点赞 ·
0 评论 ·
8 收藏

设计模式总结

策略模式是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换让算法独立于使用它的客户端(调用方)而变化。很多情况下,我们代码里有大量的 if else、switch 等,可以通过使用策略模式,避免大量条件语句的使用,实现算法的分离和独立变化。它的主要目的是为了解耦多个策略,并方便调用方在针对不同场景灵活切换不同的策略策略模式的特点:[1] 算法封装:将算法的实现与使用算法的代码分离,通过封装提高代码的灵活性和可扩展性。[2] 动态替换:可以在运行时选择和替换算法。
原创
博文更新于 2025.07.18 ·
632 阅读 ·
20 点赞 ·
0 评论 ·
13 收藏

MySQL知识点

主要是通过二进制日志(BinaryLog,简称 binlog)实现数据的复制。主数据库在执行写操作时,会将这些操作记录到 binlog 中,然后推送给从数据库,从数据库重放对应的日志即可完成复制。MySQL 主从复制类型MySQL 支持异步复制、同步复制、半同步复制。
原创
博文更新于 2025.07.16 ·
1201 阅读 ·
20 点赞 ·
0 评论 ·
12 收藏

Netty知识点

Reactor 是服务端在网络编程时的一个编程模式,主要由一个基于 Selector (底层是select/poll/epoll)的死循环线程,也称为 Reactor 线程基于事件驱动,将 I/0 操作抽象成不同的事件,每个事件都配置对应的回调函数,由Selector 监听连接上事件的发生,再进行分发调用相应的回调函数进行事件的处理。Reactor 线程模型分为三种,分别为单 Reactor 单线程模型、单 Reactor 多线程模型、主从 Reactor 多线程模型。
原创
博文更新于 2025.07.16 ·
799 阅读 ·
7 点赞 ·
0 评论 ·
17 收藏

JVM——有哪些常见的垃圾收集器

 Serial 收集器的老年代版本,使用标记-整理(Mark-Compact)算法进行垃圾回收。通过分区来管理内存,并在垃圾收集时优先处理最有价值的区域,避免了CMS 的内存碎片问题。适用场景:适合大内存、多 CPU 服务器应用,尤其在延迟和响应时间敏感的场景中表现出色。 适用场景:适合单线程环境和低内存使用场景,通常配合 Serial 收集器一起使用。标记-清除算法:主要用于CMS,标记存活对象后,清除不可达对象,但容易产生内存碎片。适用场景:适合大规模并行计算的场景,适用于高吞吐量要求的任务。
原创
博文更新于 2025.07.15 ·
320 阅读 ·
4 点赞 ·
0 评论 ·
3 收藏

JVM——如何对java的垃圾回收机制调优?

比如发现频繁会产生 Ful GC,分析日志之后发现没有内存泄漏,只有 Young GC 之后会有大量的对象进入老年代,然后最终触发 FulGC。具体调优还是得看场景根据 GC 日志具体分析,常见的需要关注的指标是 Young GC 和 Full GC 触发频率、原因、晋升的速率、老年代内存占用量等等。或者是晋升年龄设置的太小,也有可能分析日志之后发现是内存泄漏、或者有第三方类库调用了System.gc 等等。GC 调优的核心思路就是尽可能的使对象在年轻代被回收,减少对象进入老年代。
原创
博文更新于 2025.07.15 ·
244 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

JVM——JVM垃圾回收调优的主要目的是什么?

2、高吞吐量:第二个目标是提高应用的吞吐量,即在单位时间内完成更多的业务处理。通过合理的GC策略和配置,减少GC的频率和时间,从而提升整体性能。1、最短暂停时间:垃圾回收调优的首要目标是减少应用程序的停顿时间,确保在垃圾回收过程中尽量保持应用的响应能力,特别是对于实时或高并发应用。两个方案相对而言第一个时延低,第二个吞吐高,基本上两者不可兼得。方案二:每次 GC 停顿 200 ms,每秒停顿 2 次。方案一:每次 GC 停顿 100 ms,每秒停顿5 次。分别是最短暂停时间和高吞吐量。
原创
博文更新于 2025.07.15 ·
392 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

JVM——JVM 的内存区域是如何划分的?

2] Survivor 区:两个Survivor 区 S0 和 S1 交替使用,新对象在 Eden 区经过一次垃圾回收后存放到其中一个 Survivor区,进一步存活的对象会移动到另一个 Survivor 区,最终晋升到老年代。[3] 在 JDK8之前,HotSpot使用永久代(PermGen)来实现方法区,JDK8之后被元空间(Metaspace)取代,元空间使用的是本地内存(Native Memory)。[1] 是一个小的内存区域,保存当前线程执行的字节码指令的地址或行号。
原创
博文更新于 2025.07.15 ·
578 阅读 ·
3 点赞 ·
0 评论 ·
10 收藏

JVM——JVM由哪部分组成?

JVM 的主要组成部分包括 类加载器子系统(ClassLoader)、运行时数据区(Runtime Data Area)、执行引擎(Execution Engine)以及 本地方法接口(Native lnterface,JNI)。
原创
博文更新于 2025.07.15 ·
249 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

JVM——编译执行于解释执行的区别是什么?JVM使用哪种方式?

即时编译(JIT):JVM 引入了即时编译器(Just-In-Time Compiler),在程序运行时将热代码(经常执行的代码)编译为本地机器码,避免反复解释,提升性能。解释执行:解释执行是指源代码不经过编译器的预先编译,而是在运行时通过解释器逐行翻译并执行。编译执行:是指程序在执行之前,首先通过编译器将源代码编译为机器代码,然后直接在 CPU 上运行常见的编译语言如 C、C++。·解释执行:JVM 会逐行解释执行字节码,尤其是程序初次运行时,这种方式有助于程序的跨平台性。
原创
博文更新于 2025.07.15 ·
434 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏
加载更多