自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

了凡

纯粹

  • 博客(91)
  • 收藏
  • 关注

原创 Spring中@Primary注解的作用与使用

Spring的@Primary注解用于解决依赖注入时的歧义性问题。当容器存在多个同类型Bean时,它标记默认首选注入对象,避免NoUniqueBeanDefinitionException。该注解优先级低于@Qualifier,常用于多数据源配置、环境切换等场景。可通过类注解或@Bean方法使用,是简化依赖管理的轻量级方案,但需注意多个@Primary标记会导致新冲突。

2025-06-05 22:23:02 714

原创 Vue中Options与Composition API对比

Vue 3提供了Options API和Composition API两种编程方式。Options API将代码按选项类型分散到不同区块,适合简单场景和新手使用;Composition API通过setup()函数集中逻辑,便于代码组织和复用,尤其适合复杂项目和TypeScript开发。Composition API支持更好的逻辑聚合、更高效的复用机制和更自然的类型推断,而Options API则更直观且兼容Vue 2。官方推荐新项目优先使用Composition API,但允许根据项目需求灵活选择。两种A

2025-06-03 08:39:06 625

原创 元编程能力

摘要: 元编程是编写能操作、生成或修改其他代码的代码能力,其核心在于将代码视为可处理的数据。优秀程序员与顶尖高手的区别在于是否能通过元编程提升抽象层次,实现代码复用、自动化及系统灵活性。典型技术包括代码生成(如ORM框架)、反射(动态分析程序结构)、宏(编译期代码转换)及动态语言特性(运行时行为调整)。元编程虽能显著提升效率(如构建DSL、开发框架),但需权衡可读性、性能与安全风险。掌握元编程不仅需技术深度,更需将复杂逻辑外化为工具,是构建“外部认知支架”的关键体现,属于高阶程序员的“元技能”。

2025-06-03 08:05:59 650

原创 构建外部认知支架提升技术效能

技术高手的思维清晰术:构建外部认知支架 技术高手已从"人脑存储器"蜕变为"系统架构师",通过构建结构化外部认知系统来应对复杂挑战。核心方法包括:1)可追溯系统(版本控制、结构化文档、可观测性体系),建立确定性知识锚点;2)可执行脚本(运维自动化、诊断工具包),将知识固化为自动化流程;3)可共享认知地图(架构图、思维导图),绘制思维导航蓝图。 这种认知支架方法具有抗脆弱性设计、杠杆效应和协作传承优势,能持续适应技术变革。方法论价值在于其独立性——构建清晰思维框架的能力超

2025-06-03 07:49:54 664

原创 单页面应用是什么

Vue 3单页面应用(SPA)是一种现代Web架构模式,具有单个HTML文件、动态内容更新和客户端路由等特点。Vue 3 SPA具备卓越性能、Composition API逻辑组织、更小打包体积和更好TypeScript支持等优势。其核心架构包含Vue Router路由系统、Pinia状态管理和API服务层。相比传统多页面应用(MPA),SPA提供更流畅的用户体验,支持前后端分离开发,并拥有现代化工具链如Vite和Vue DevTools。生产级实践包括路由懒加载、模块化状态管理和性能优化技巧,使SPA成为

2025-06-03 00:05:18 953

原创 Spring Boot自动装配原理

Spring Boot自动装配原理通俗解析:它像一个"智能管家",通过@SpringBootApplication注解开启自动配置,扫描依赖中的spring.factories文件,根据条件注解(如@ConditionalOnClass)动态装配组件。例如引入web starter时,会自动配置Tomcat和Spring MVC。starter与自动配置配合,简化了依赖管理。整个过程就像自助餐厅,用户只需选择套餐(starter),系统就会自动完成复杂配置。核心是"按需装配&q

2025-05-29 23:25:41 1162

原创 MCP协议开发规范

MCP协议开发规范摘要(150字) MCP协议是Anthropic推出的AI工具交互标准,通过统一接口实现模型与外部服务的即插即用,如调用天气API写诗。其核心设计包含标准化、互操作性等六大原则,采用有状态会话和双向通信机制,相比REST/RPC更适配AI场景。Java开发者可通过实现McpTool接口快速构建服务(如天气预报),再通过LangChain4j集成调用。开发时需注意安全授权、SSE推送等规范,避免硬编码和错误处理缺失。MCP的开放生态可能成为AI时代的通信标准,掌握其开发能显著提升工程效能。

2025-05-29 14:55:09 797

原创 SSE流式传输

摘要: SSE(Server-Sent Events)是一种服务器单向推送数据的技术,适用于实时通知、股票行情等场景。其原理是浏览器通过EventSource建立连接后,服务器以text/event-stream格式主动推送数据(每条消息以\n\n结尾)。相比WebSocket,SSE基于HTTP、自动重连,适合单向数据流。实现时,服务器需设置响应头并持续推送数据片段,前端通过监听onmessage事件实时更新。例如,Spring Boot可用Flux轻松实现SSE流。面试时可比喻为“奶茶店做好一杯喊一声”

2025-05-29 14:12:57 424

原创 docker常见考点

本文总结了Docker相关的核心面试知识点,主要包括六大类内容:基础概念(如Docker与虚拟机的区别、核心组件等)、镜像管理(镜像构建、优化方法等)、容器操作(生命周期管理、数据持久化等)、网络与安全(网络模式、安全实践等)、高级应用(Docker Compose、多阶段构建等)以及高频命令示例。文章还涉及高级岗位的扩展考点,如CI/CD集成和容器监控工具。这些内容全面覆盖了Docker技术的关键概念和实际应用,适合面试准备和技术提升参考。

2025-05-29 13:39:38 1126

原创 Coze与Dify平台功能对比分析

摘要:Coze与Dify是两大主流AI开发平台,分别侧重轻量级应用与企业级定制。Coze(字节旗下)主打零代码社交机器人开发,适合非技术人员快速部署至抖音/微信,但依赖字节模型且隐私性弱;Dify作为开源平台支持多模型混合调用与私有化部署,适合金融/医疗等复杂场景,需技术背景但数据可控。核心差异体现为:Coze胜在便捷与生态集成,Dify强在自由度与安全性。选择取决于需求复杂度——轻量任务选Coze,深度定制选Dify。

2025-05-27 23:36:30 438

原创 HDFS存储原理与MapReduce计算模型

HDFS:通过分块、多副本和机架感知实现高吞吐、高可靠存储。MapReduce:以分而治之思想,通过Map、Shuffle/Sort、Reduce三阶段处理海量数据,结合容错机制保障稳定性。两者共同构成Hadoop生态的核心计算与存储基础。

2025-05-25 16:51:06 572

原创 Dubbo与OpenFeign的区别

Dubbo vs OpenFeign:本质区别与适用场景(简明版) Dubbo是高性能Java RPC框架,采用二进制协议,适合服务间高频调用,需注册中心支持;OpenFeign是声明式HTTP客户端,基于RESTful风格,支持跨语言调用,更灵活但性能稍逊。 关键差异: 协议:Dubbo用私有二进制协议,OpenFeign用HTTP+JSON 性能:Dubbo长连接快,OpenFeign短连接易扩展 使用:Dubbo需接口实现,OpenFeign注解声明即可 选型建议: 微服务内部Java调用选Dubbo

2025-05-25 12:02:21 669

原创 文本存入向量数据库流程

本文通过四步流程将文本数据转化为可计算处理的向量形式:1)文本切块,采用固定长度、语义段落或重叠分段方式拆分内容;2)数据清洗,去除无关符号与格式化标签;3)向量编码,通过嵌入模型将语义转化为多维数值向量;4)向量入库,存储向量及关联元数据至专用数据库。整个过程类比食材处理(切块→清洗→调味→冷藏),最终实现基于数学空间的语义检索。关键价值在于将非结构化文本转化为可计算对象,使"火锅"与"川菜"的关联度能通过向量距离量化呈现。

2025-05-25 10:14:55 281

原创 单例模式总结

单例模式的线程安全性取决于具体实现方式。常见的线程不安全实现有无同步的懒汉式,而线程安全实现包括: 1)饿汉式(简单但无法延迟加载) 2)同步懒汉式(性能较差) 3)双重检查锁定(需volatile修饰) 4)静态内部类(兼顾性能与懒加载) 5)枚举(最佳实践,防反射/序列化攻击) 其中,静态内部类通过JVM类加载机制保证线程安全,而枚举单例天然线程安全且能防御反射攻击。实际开发推荐使用枚举或静态内部类实现单例模式。

2025-05-24 16:45:29 807

原创 Java程序员高效视频学习指南

摘要:Java程序员通过视频学习新技能时,建议采用目标导向的六步法:1)明确需求并精选实战课程;2)拆解模块制定弹性计划;3)采用三遍学习法结合即时编码实践;4)构建结构化笔记与技术图谱;5)通过费曼讲解和技术博客强化输出;6)建立社群打卡等可持续机制。关键要避免教程依赖,平衡深度广度,建议每周聚焦一个技术模块(如Spring Security),通过"观看-编码-复盘"循环将知识转化为项目能力,最终形成可验证的学习成果(如GitHub仓库/技术文档)。

2025-05-24 12:07:32 704

原创 Java对象内存分配优化教学

技术名词通俗解释效果逃逸分析JVM暗中观察对象是否"越狱"判断能否优化对象的内存分配栈上分配让短命对象在栈内存"就地去世"减少堆内存压力标量替换把对象拆成零件,直接当变量用连栈内存都不用了,极致优化。

2025-05-24 00:15:36 364

原创 Java线程池调优与实践经验

通过分析任务类型(IO密集型),我们将核心线程数设置为CPU数的2倍,队列容量根据历史峰值流量设定。在遇到突发流量时,通过自定义拒绝策略将任务暂存到Redis,后续通过补偿任务重试,最终系统吞吐量提升了30%。通过结合具体场景、参数原理和实战案例,能够清晰展示对线程池调优的深入理解,这正是面试官希望听到的答案。在Java面试中,线程池调优是一个常见且重要的考察点,尤其是当涉及Spring生态时,的使用经验通常会被深入追问。:某订单处理系统在促销期间出现任务积压,部分请求超时。“在之前的订单系统中,我使用。

2025-05-21 23:56:24 1022

原创 ThreadPoolTaskExecutor 和 ThreadPoolExecutor 的使用场景

在Spring Boot项目中,ThreadPoolTaskExecutor 和 ThreadPoolExecutor 的使用场景有所不同,但开发者通常更倾向于使用 ThreadPoolTaskExecutor。ThreadPoolTaskExecutor 是 Spring 对 ThreadPoolExecutor 的封装,提供了与 Spring 生态的无缝集成,如通过配置文件动态调整线程池参数、支持 @Async 注解实现异步任务、以及通过 TaskDecorator 传递上下文(如日志 TraceID)

2025-05-21 23:36:54 583

原创 Java接口P99含义解析

现在是不是觉得P99就像奶茶店的等待计时器?下次面试官问起,你可以笑着说:“这就像关注奶茶店最长等待的客人,我们程序员要让最慢的1%请求也能喝到顺滑的代码奶茶!“P99就像班级里的学霸成绩,不能只看平均分。我们团队曾用线程池优化把P99从2秒降到200ms,就像给奶茶店加了10个自动封口机,让最慢的1%订单也能飞速完成!

2025-05-21 23:11:55 308

原创 你开发中遇到最难处理的问题是什么?

在面试中回答“你开发中遇到最难处理的问题是什么”时,关键在于通过具体案例展示你的。通过这样的回答,面试官不仅能评估你的技术能力,还能看到你的。——这正是高级工程师的核心素质。

2025-05-21 22:39:19 895

原创 【JVM】学习笔记

Java虚拟机(JVM)是一个抽象的计算机,用于运行Java程序,通过将字节码转换为机器码实现跨平台性。JVM架构包括类加载子系统、运行时数据区(如方法区、堆、栈等)和垃圾回收机制(GC),后者负责自动回收不再使用的对象。JVM的执行过程涉及字节码的加载、解释执行和即时编译(JIT),以提高性能。性能调优可通过调整堆内存、垃圾回收器和JVM参数实现。JVM还支持多线程和内存模型,确保线程安全。常见问题包括内存泄漏、OOM和性能瓶颈。直接内存是JVM外的高性能内存区域,常用于NIO操作,需手动管理。JVM与其

2025-05-21 22:03:44 839 1

原创 JVM调优

JVM调优并非玄学,而是基于数据的科学决策。通过类比汽车保养和医院体检,可以更好地理解其核心逻辑。JVM调优的本质在于调整内存模型与GC策略,平衡吞吐量、延迟和内存占用。关键步骤包括监控诊断、参数调整、基准测试和监控验证。常见的调优场景如电商大促时的Full GC雪崩和后台报表系统的内存泄漏,可以通过工具如jstat和jmap进行分析和解决。GC调优策略应根据应用场景选择,如吞吐量优先或低延迟优先。面试中常见问题包括如何确定堆内存大小、G1和CMS的区别以及Metaspace溢出的解决方法。调优过程中应避免

2025-05-21 21:55:16 959

原创 把你知道的jvm都说一下

掌握这些核心要点,既能应对面试,也能在实际开发中快速定位JVM相关问题!建议结合《深入理解Java虚拟机》系统学习。JVM是Java程序的运行引擎,就像汽车的发动机,主要管理内存、执行代码和优化性能。"理解JVM的关键在于掌握内存模型和GC原理。- 栈帧(局部变量表/操作数栈)- 分代设计(新生代/老年代)- 类信息/常量/静态变量。本地方法栈(Native)- 线程执行位置指针。

2025-05-21 21:39:31 918

原创 方法区与元空间解析

这样是不是比死记硬背有趣多啦?😄 记住这个拆迁故事,面试官问起来就能生动地讲出来啦!可以加参数:-XX:MaxMetaspaceSize=512m 来扩建开发区哦!就像"手机充电"是需求,而Type-C/lightning是具体实现。元空间是HotSpot对方法区的实现(怎么做)下次看到OOM: Metaspace错误时。我来用个有趣的比喻帮你理解这个知识点!方法区是JVM规范中的概念(做什么)🌌【内存宇宙的拆迁改造故事】🌌。就想起这是新城区的地皮不够用了。

2025-05-16 19:56:58 185

原创 Java生产环境设限参数教学

本文通过开餐厅的比喻,形象地解释了Java生产环境中必须设置的四大参数。首先,-Xmx限制堆内存上限,防止内存溢出;其次,-XX:MaxMetaspaceSize控制元空间大小,避免类定义无限膨胀;第三,-Xss优化线程栈大小,减少内存浪费;最后,-XX:MaxDirectMemorySize管理直接内存,防止堆外内存滥用。通过这四个参数的合理设置,可以有效避免系统崩溃和资源浪费,确保程序稳定运行。

2025-05-16 19:54:16 372

原创 Spring Security vs Shiro vs Sa-Token

【代码】Spring Security vs Shiro vs Sa-Token。

2025-05-16 18:48:35 614

原创 学习状态不佳时的有效利用策略

通过这种方式,即使状态不佳,你也能在“低耗能模式”下积累进步,同时为下一次高效学习储备能量。

2025-05-16 17:27:48 788

原创 BFF与API Gateway的区别解析

维度BFF核心职责流量管控(认证、路由、限流)业务适配(数据聚合、裁剪)数量通常全局1个按前端类型多个(如Mobile/Web)层级所有请求的第一层位于API Gateway和微服务之间是否改代码配置化(如Nginx/YAML)需要写业务逻辑代码。

2025-05-16 02:13:25 406

原创 Java与Go语言对比教程

想造航空母舰 → Java要造星际飞船 → Go既要又要 → 学Java保工作,学Go拿高薪!

2025-05-10 23:49:12 968

原创 Scala与Go的异同教程

各位准备秃头的程序猿们(放心,用Go和Scala不会加重你的发际线问题),今天我们来聊聊编程界的"冰与火之歌"——Scala和Go的异同。启动一个Goroutine的内存开销只有2KB,相当于发个朋友圈的动态,而Java线程至少需要1MB,就像开直播那么费资源”A:“就像给你的代码偷偷下蛊,可能突然发现:卧槽这个String怎么有toInt方法?• Scala:“亲爱的,这个类型转换就像爱情,有些话不需要说出口(隐式转换)”A:“这是Go的防秃头设计,强迫你直面错误,避免中年危机”• Go:“少废话!

2025-05-10 23:22:52 714

原创 JVM 逃逸分析

JVM逃逸分析是一种优化技术,旨在确定Java对象是否会在方法或线程之外被引用,从而决定其存储位置。通过逃逸分析,JVM可以将不会逃逸的对象分配在栈上,而不是默认的堆区,以提高性能。逃逸分析主要检测对象是否会发生方法逃逸或线程逃逸。对于不会逃逸的对象,JVM可以使用栈上分配、标量替换和同步消除等优化手段。开发者可以通过缩小对象作用域、避免暴露引用、优先使用局部变量等方法来帮助JVM进行逃逸分析。尽管逃逸分析能显著提升性能,但并非所有JVM都支持,且分析过程会消耗CPU资源。通过合理设计代码,开发者可以充分利

2025-05-10 18:01:40 595

原创 Java云原生到底是啥,有哪些技术

本文以幽默的修仙比喻,介绍了Java云原生的核心概念与技术栈。文章首先对比了传统Java程序与云原生程序的特点,指出云原生程序具备模块化、弹性伸缩和自愈能力等优势。接着,详细讲解了容器化(Docker)、编排术(Kubernetes)和微服务(Spring Cloud)等核心技术,并提供了代码示例。此外,文章还探讨了Serverless、可观测性等进阶技术,以及云原生开发中常见的挑战与解决方案。最后,通过双十一秒杀活动的实战场景,展示了云原生技术的实际应用效果。文章强调,云原生技术能够帮助Java程序从传统

2025-05-10 17:01:05 1188

原创 管理学习状态

—学会像调节运动强度一样管理学习状态。

2025-03-13 20:48:36 1014

原创 提升精力的高效方法指南

长期熬夜、依赖咖啡透支身体,就像手机边充电边玩——最终会报废!从今天起调整节奏,精力自然提升。提升一天的精力需要从。

2025-03-07 16:53:07 673

原创 身体不适时保持学习状态的方法

身体状态差时的有效学习时长可能是正常状态的60%,但通过聚焦核心知识点(用80/20法则筛选重点),仍能保持70%以上的知识获取效率。记录每次「低电量模式」的学习数据,逐步建立个人化的疲惫期学习模型。当身体状态不佳、缺乏学习动力时,保持学习状态需要更灵活的策略和对自己身心状态的接纳。记得在状态恢复后,给自己安排一次「补偿性放松」,比如30分钟森林浴或温泉泡脚,让身心形成「努力后必有滋养」的正向循环。

2025-03-07 12:32:53 223

原创 看视频学习方法总结

关键要点在于:将被动观看转化为主动的知识构建过程,利用神经可塑性原理设计学习路径,最终实现知识的内化与迁移。荷兰伊拉斯姆斯大学实验表明,这种预习可提升20%的专注力,消除60%的焦虑感。将视频内容分解为「核心概念」「操作步骤」「应用场景」三部分,提前标注重点(如:视频05:30处有关键公式推导)。),带着问题寻找答案的效率比被动接收高3倍。使用厨房计时器,每15分钟进行1分钟「眼球操+深呼吸」,可提升30%的记忆保持率。遇到复杂概念时,用玩偶作为听众进行讲解,当发现自己无法通俗解释时,立即定位知识盲区。

2025-02-25 18:17:44 1569

原创 JZ13 机器人的运动范围

描述地上有一个 rows 行和 cols 列的方格。坐标从 [0,0] 到 [rows-1,cols-1] 。一个机器人从坐标 [0,0] 的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于 threshold 的格子。 例如,当 threshold 为 18 时,机器人能够进入方格 [35,37] ,因为 3+5+3+7 = 18。但是,它不能进入方格 [35,38] ,因为 3+5+3+8 = 19 。请问该机器人能够达到多少个格子?代码pu

2021-10-31 16:21:24 282

原创 java笔试算法 - 两个有序数组的公共部分

题目:两个有序数组的公共部分坑:大于时间复杂度O(N)算0分1.无脑遍历public void FindCom(int[] a,int[] b){ for (int i = 0; i < a.length; i++) { for (int j = 0; j < b.length; j++) { if (a[i] == b[j]){ System.out.print(a[i]+

2020-10-10 05:17:54 552 4

原创 JZ19 顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.import java.util.ArrayList;public class Solution { public ArrayList<Integer> printMatrix(int[][]

2020-09-22 06:52:35 2011

原创 JZ27 字符串的排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。import java.util.*;public class Solution { public ArrayList<String> Permutation(String str) { Ar

2020-09-21 17:07:44 398 1

空空如也

空空如也

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

TA关注的人

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