自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

龚小帅的博客

我想要开发一个能为自己做任何事的程序!

  • 博客(570)
  • 资源 (3)
  • 收藏
  • 关注

原创 MySQL 中删除重复的数据并只保留一条

要在 MySQL 中删除重复的数据并只保留一条,可以使用下面的方法。

2024-07-11 10:27:20 11368 29

原创 【人工智能】聊聊Transformer,深度学习的一股清流(13)

Transformer模型是一种深度学习模型,在自然语言处理领域取得了巨大成功。它在处理上下文信息方面表现出色,在自然语言生成、文本分类和语义理解等任务中广泛应用。随着BERT、GPT-2、T5等预训练模型的涌现,这一系列模型在效果上不断取得进展。然而,Transformer模型也存在一些问题,比如计算复杂度高和对大量训练数据的需求。为了解决这些问题,研究者们提出了一些改进方法,比如在BERT模型中使用小批量随机掩码和预测,以及在GPT-2模型中采用Top-k随机采样。

2024-02-08 14:09:25 1630 6

原创 Spring 之 @Cacheable 缓存使用教程

该抽象类提供 loadCaches() 方法,可以获取到所有 Cache 接口实现类。所以这里能够获取到所有缓存。那么肯定是可以使用双缓存。/*** 直接实现 AbstractCacheManager 抽象类的钩子方法,该类已经写好模版方法* 当执行的时候,如果 MyGuavaCacheManager 管理类 @Bean 的话,就会勾到这个方法逻辑* @return} }} }最终通过注入一个缓存管理类 MySimpleCacheManager 就可以使用到三个缓存。

2023-01-18 13:20:22 5297 2

原创 Spring 之 @EnableAspectJAutoProxy 简单使用和源码分析

注意这个类又什么特点呢?可以看出这个类是 Spring BeanPostProcessor 接口的应用。BeanPostProcessor 接口设计非常灵活。这里主要关注#postProcessAfterInstantiation() 方法,因为主要逻辑在这个方法里面。这个抽象类把公共的核心逻辑写好,子类只需要重写其中的一些方法即可,这其实是模版设计模式的一种体现。if(bean!= null) {

2022-12-31 19:39:55 4896 3

原创 SpringBoot 之自动装配简单使用

其实归根结底还是Spring 的 SpringFactoriesLoader 工厂加载机制 + @Import(DeferredImportSelector)实现的,之前说配置文件必须写死 META-INF/spring.factories 规范也就是 Spring 的 SpringFactoriesLoader 规范。上升到 SpringBoot 就完美利用这两点功能实现了自动装配。然后 SpringBoot 将 @EnableXxx 各式各类注解统一命名成 @简单明了!这也就是为什么。

2022-12-28 14:45:39 1840

原创 Spring 之 @Component 和 @Configuration 两者区别以及源码分析

之前一直搞不清 @Component 和 @Configuration 这两个注解到底有啥区别,一直认为被这两修饰的类可以被 Spring 实例化嘛,不,还是见识太短,直到今天才发现这两玩意有这么大区别。很幸运能够及时发现,后面可以少走点坑,下面就直接通过最简单的案例来说明它两的区别,颠覆你的认知。

2022-12-20 18:03:41 4302 1

原创 为什么用了 @Builder 反而报错?深入理解 Lombok 的“暗坑”与解决方案(二)

如果类中有。

2025-04-24 21:36:31 918 1

原创 Java 中 String 字符串使用避坑指南:少走弯路的实用经验

String是 Java 中一个功能强大、使用频率极高的类,但它的不可变性、常量池机制、和各种 API 都需要我们小心对待。掌握上述避坑技巧,可以帮助我们写出性能更高、代码更优雅的程序。希望这份指南对大家在日常开发中有帮助!

2025-04-24 21:36:05 477

原创 探索 Java 中 String 类的常用方法

String类的这些常用方法为处理字符串提供了极大的便利。掌握这些方法,可以帮助你更有效地编写代码,处理各种字符串相关的问题。在实际开发中,合理利用这些方法,可以提高代码的可读性和效率。

2025-04-24 21:35:47 613

原创 JDK 21 的新特性:探索 Java 的最新进化

JDK 21 的推出标志着 Java 又一次向高性能、易用性迈进了一大步。无论是正式版的虚拟线程、模式匹配,还是 Scoped Values 等预览功能,JDK 21 都在为开发者提供更强大的工具,帮助我们写出更优雅、更高效的代码。

2025-04-24 20:49:47 514

原创 如何使用 CompletableFuture、Function 和 Optional 优雅地处理异步编程?

通过结合 CompletableFuture、Function和 Optional,我们可以更简洁、优雅地处理复杂的异步编程场景。这样做不仅提升了代码的可读性,还避免了常见的异常问题(如空指针异常)。这三者各自发挥着作用,但结合使用时能够发挥出最大的效能,让我们在开发过程中,既能提升生产力,又能减少潜在的错误。

2025-04-24 20:48:57 560

原创 Java 2025 技术全景与实战指南:从新特性到架构革新

Java在2025年不仅保持了"一次编写,到处运行"的核心优势,更在性能、开发体验和新兴技术集成方面取得了突破。拥抱变化,持续学习新特性在架构设计中考虑弹性和可观测性将Java生态与云原生、AI等趋势有机结合Java的未来不是替代,而是进化- 2025年的Java将比以往任何时候都更强大、更灵活、更适应现代软件开发的需求。现在就开始你的Java 2025之旅吧!

2025-04-24 20:48:16 703

原创 JDK 24 进入 Rampdown 阶段:新特性详解与代码实战

JDK 24进入发布前的最后打磨阶段字符串模板将彻底改变字符串处理方式结构化并发让异步代码更易编写和维护记录模式使模式匹配更加完备虚拟线程已准备好用于生产环境建议所有Java开发者现在就开始熟悉这些新特性,它们将很快成为我们日常开发的标配工具!你对哪个新特性最感兴趣?欢迎在评论区讨论!

2025-04-24 20:47:53 576

原创 Java语言的进化:JDK的未来版本

Java的未来版本将继续在以下方向发力:✅ 更简洁的语法(记录类、模式匹配)✅ 更高性能(值类型、向量API)✅ 更好的并发模型(虚拟线程)✅ 更强的互操作性(FFM API)✅ 更智能的工具链Java正在经历自Java 8以来最激动人心的变革时期!作为开发者,我们应该拥抱这些变化,它们将让我们的代码更简洁、更高效、更易维护。准备好迎接Java的未来了吗?🚀 让我们一起见证Java语言的持续辉煌!

2025-04-24 20:47:24 1137

原创 写了这么多年 Java,今天讲讲 Function一些高级玩法

Java 是一门严谨的编程语言,面向对象的特性让我们很早就开始接触类和对象的世界,但随着 Java 8 引入了函数式编程的一些特性,Function接口悄然走进了我们的生活。作为一个开发者,可能你在项目中见到过Function,也可能用过它,但你真的了解它的强大威力吗?今天,我们就一起来深入剖析 Java 中的Function接口,看看它如何在函数式编程的世界里大显身手,帮助你写出更加优雅、高效的代码。首先,了解一下Function接口的基本定义。Function。

2025-04-18 21:15:08 740

原创 【硬核干货】Java开发者必知的10个高效编程技巧与避坑指南

掌握这些Java编程技巧,你的代码将:✅ 更健壮 - 减少NPE和并发问题✅ 更高效 - 提升性能表现✅ 更简洁 - 减少样板代码✅ 更易维护 - 提高可读性记住,优秀的Java开发者不仅要让代码能运行,更要让代码优雅高效!💯互动时间:你平时最常用的Java技巧是什么?或者遇到过哪些Java坑?欢迎在评论区分享!👇📢下期预告:《深入理解Java虚拟机:从字节码到性能调优》敬请期待!你的支持是我创作的最大动力!

2025-04-18 21:14:48 575

原创 2025年五大Java框架预测:谁将主导未来技术栈?

作为一名深耕Java领域多年的技术博主,我见证了Spring的崛起、Hibernate的辉煌以及众多框架的兴衰。2025年即将到来,哪些Java框架会站在技术浪潮之巅?今天我将通过带你前瞻未来!

2025-04-18 21:14:13 942

原创 Java 2025:解锁未来5大技术趋势,Kotlin融合&AI新篇

Java生态系统在2025年将比以往任何时候都更加充满活力。Kotlin的融合带来了现代语言特性,AI技术彻底改变了开发体验,GraalVM突破了性能瓶颈,云原生和区块链开辟了新的应用领域。关键收获混合语言开发将成为Java项目的常态AI工具不是替代开发者,而是增强开发能力原生编译使Java在更多场景具有竞争力云原生演进降低了分布式系统复杂度记住,技术变革不是威胁而是机遇。那些从现在开始逐步适应这些变化的开发者,将在2025年占据领先地位。你准备好迎接Java的新未来了吗?💪下一步行动。

2025-04-18 21:13:19 1145

原创 2024年Java生态重磅更新盘点:从JDK 24到Ktor 3.0的技术盛宴

JDK 24:适合开发环境尝鲜新特性,特别是字符串模板和向量APITomcat 11:新项目建议直接使用,注意Jakarta命名空间变更:需要强一致性和AI集成的场景首选:复杂对象持久化的轻量级解决方案:企业级Java EE/微服务应用的可靠选择Ktor 3.0:Kotlin后端开发的现代化框架2024年的Java生态依然充满活力,这些更新为我们提供了更强大的工具和更高的性能。建议根据项目需求选择合适的升级路径,小步快跑式地采用新技术。你对哪个更新最感兴趣?在评论区告诉我吧!

2025-04-18 21:12:52 519

原创 2025年1月最受欢迎的10大Java开源库深度解析

虚拟线程普及:几乎所有主流框架都已适配虚拟线程编译时处理:减少运行时反射,提升性能和原生兼容性响应式+阻塞式融合:框架同时支持两种编程模型Java 21特性采纳:记录类、模式匹配等特性被广泛使用云原生深度集成:Kubernetes和Serverless成为一等公民希望这篇文章能帮助你把握Java技术栈的最新动态!每个库都值得深入探索,建议选择最符合你项目需求的进行实践。如果有任何问题,欢迎在评论区留言讨论!💡你觉得哪个库最让你心动?在评论区分享你的看法吧!👇。

2025-04-18 21:12:29 802

原创 2025 JavaOne 技术大会首日精彩回顾:Java 如何继续推动世界

Java技术博主 |:2025年9月15日。

2025-04-18 21:11:51 941

原创 写死 if-else 的你,见过 Optional 的优雅吗?

Optional是 Java 8 引入的一个强大工具,它让null的处理变得更优雅。如果你还在用if-else判空,不妨试试Optional,让你的代码更简洁、更健壮!💡Optional不是用来替代null,而是显式表达"值可能不存在"。💡 善用mapflatMapfilter可以让代码更流畅。💡 避免直接调用get(),优先使用orElse()等安全方法。希望这篇文章能帮助你写出更优雅的 Java 代码!🚀 如果有问题,欢迎在评论区交流!😊。

2025-04-18 21:11:05 589

原创 别再 for 循环遍历了!Stream 流式处理才是现代 Java 的打开方式

Stream API 是 Java 8 引入的最重要特性之一,它彻底改变了我们处理集合数据的方式。通过本文的学习,你应该已经掌握了:✅ Stream 的基本概念和使用方法✅ 各种中间操作和终止操作✅ 并行流处理和性能优化✅ 与传统循环的对比和最佳实践记住:Stream 不是要完全取代 for 循环,而是为我们提供了另一种更声明式、更函数式的数据处理方式。在实际开发中,应根据具体场景选择最合适的工具。现在,是时候告别冗长的 for 循环,拥抱 Stream 流式处理的未来了!🎯📢 互动时间。

2025-04-18 21:10:31 658

原创 Spring Boot自动配置原理深度解析:从条件注解到spring.factories

想象一下,你刚搬进一个新家🏠。如果是传统Spring,你需要自己买家具、安装电器、布置每个房间。而Spring Boot就像一家提供"精装修"服务的公司——当你搬进去时,冰箱🍔、洗衣机👕、电视📺都已经安装好了,而且都是根据你的生活习惯智能选择的!这就是自动配置的魔力✨——它根据你项目中的依赖和配置,自动为你配置好Spring应用所需的大部分组件。理解了原理后,让我们动手创建一个自定义的Spring Boot Starter!使用触发自动配置过程通过发现所有潜在的自动配置类。

2025-04-18 21:10:19 1224

原创 Spring Boot Starter设计思想:如何像搭积木一样玩转Java开发?(超详细解析)

统一的安全配置公共的日志处理公司内部的中间件连接通用的工具类集合Spring Boot Starter的设计思想真是Java开发者的福音啊!标准化依赖管理:不再担心版本冲突模块化设计:像搭积木一样组合功能自动配置:开箱即用的最佳实践灵活扩展:轻松自定义和覆盖更细粒度的模块划分更智能的自动配置更好的云环境适配更强大的扩展机制。

2025-04-18 21:05:44 875

原创 Spring Boot 配置全攻略:properties vs. YAML vs. 环境变量(超详细版)

应用配置app.name=我的SpringBoot应用# 数据库配置键=值,一行一个配置,号开头的是注释。YAML(发音"亚麻尔")是比 properties 更现代的结构化格式👶,全称是 “YAML Ain’t Markup Language”(递归缩写,程序员就爱玩这种梗😆)。app:name: 我的SpringBoot应用db:看出来了吗?用缩进表示层级关系,比 properties 更结构化!

2025-04-18 21:05:10 791

原创 从零开始解剖Spring Boot启动流程:一个Java小白的奇幻冒险之旅

Bean});哇!我们终于走完了Spring Boot的整个启动流程!main()方法是入口,调用SpringApplication初始化时会确定应用类型、加载初始化和监听器run()方法是核心,完成了环境准备、上下文创建和刷新刷新上下文是最复杂的部分,完成了Bean工厂准备、自动配置、Bean注册等内嵌Tomcat在刷新阶段被创建和启动自动配置通过条件注解智能地配置应用Spring Boot的启动过程就像是一个精密的瑞士手表⌚,各个部件协同工作,最终让我们的应用顺利运行。

2025-04-18 21:04:43 865

原创 Spring Boot 核心注解全解:@SpringBootApplication背后的三剑客

是Spring Boot特有的配置注解,它实际上是注解的"加强版"💪。从代码可以看出,它本质上就是一个,但加上了Spring Boot的特殊标识。你也可以创建自己的自动配置!创建文件写入你的配置类全限定名使用系列注解控制条件// ...排除特定自动配置:如测试时排除安全配置精细控制扫描:只扫描必要的包提高性能组合使用:可以同时使用这三个注解进行更细粒度控制没有放在组件扫描的路径下类上没有加或相关注解被其他配置覆盖了检查包结构添加使用@Order调整顺序。

2025-04-18 21:04:13 878

原创 Spring Boot 依赖注入与Bean管理:JavaConfig如何取代XML?

想象一下,你是一个小厨师👨🍳,要做一道美味的番茄炒蛋🍳。你需要什么呢?需要番茄、鸡蛋、油、盐对吧?这些"材料"就是你的"依赖"!传统方式:你自己去菜市场买番茄、去养鸡场找鸡蛋、去超市买油和盐…累不累?😫依赖注入方式:有个神奇的冰箱(Spring容器),里面已经准备好了所有材料,你只需要说"我要做番茄炒蛋",冰箱就自动把材料给你准备好!太方便了吧!😍// 传统方式:自己创建所有依赖// 依赖注入方式:告诉Spring你需要什么,它自动给你@Autowired。

2025-04-18 21:03:43 945

原创 Spring Boot 热部署实战:DevTools与JRebel原理对比(超详细保姆级教程)

想象一下,你正在写作业(代码),每次写完一小段就要把作业本合上(重启应用),然后再打开检查效果。是不是很烦?😫 热部署就是让你不用合上作业本,直接就能看到修改后的效果!专业点说:**热部署(Hot Deployment)**是指在不重启应用的情况下,动态更新类或资源文件,使改动立即生效的技术。经过这么详细的对比,相信大家对两种热部署方案都有了深刻理解。最后给出我的个人建议选择DevTools如果项目规模不大预算有限主要进行业务逻辑开发可以接受轻微的重启延迟选择JRebel如果项目复杂庞大。

2025-04-18 21:02:55 1011

原创 Spring Boot配置文件优先级全解析:如何优雅覆盖默认配置?

如果你想玩点高级的,可以实现自己的@Overridereturn "我是自定义属性值";@Autowired这样你就可以用获取自定义属性啦!🎩✨优先级配置来源示例适用场景最高命令行参数临时测试、运维调整↑环境变量容器部署、敏感信息↑外部配置文件生产环境配置↓jar内配置文件默认配置、开发环境最低默认属性框架默认值“命环外jar默认”(命令行>环境变量>外部文件>jar内文件>默认)!🗣️恭喜你!🎊 现在你已经完全掌握了Spring Boot配置文件优先级的精髓!

2025-04-18 21:02:30 1037

原创 Spring Boot日志系统详解:Logback与SLF4J的默认集成

SLF4J(Simple Logging Facade for Java)就像是日志系统的"遥控器"📱,它定义了一套统一的日志接口,但不负责具体的日志实现。解耦🔗:你的代码只依赖SLF4J接口,不关心底层用哪种日志实现灵活🤸:可以随时更换底层日志框架而不需要修改代码统一🔄:所有日志都通过同一个接口输出// 通过SLF4J获取Loggerlogger.info("这是一条信息日志");logger.error("这是一条错误日志");

2025-04-18 21:02:07 882

原创 《Spring Boot 测试框架指南:@SpringBootTest与Mockito的最佳实践》

SpringBootTest就像是给你的Spring Boot应用做全身检查👨⚕️。它会启动几乎整个应用上下文,包括所有的bean、配置、数据库连接等等。@Autowired// 可以自动注入真实的bean@Test创建虚拟对象(模拟对象)定义这些对象的行为验证它们是否被正确调用为什么需要Mockito?因为单元测试应该独立!我们不希望测试UserService时,真的去调用数据库或第三方API。// 当调用findById(1L)时,返回预设的用户。

2025-04-18 21:01:29 1153

原创 一个 Function 接口,竟然让我的业务逻辑少写 100 行!Java函数式编程实战

消除重复代码:把通用流程抽离出来提高灵活性:通过传入不同的函数实现不同的行为增强可读性:代码更加声明式,业务逻辑更清晰便于测试:可以单独测试每个函数组件函数式编程不是银弹,但在处理这类"固定流程+可变逻辑"的场景时,它能显著提升代码质量。这里能不能用Function接口抽象?思考题:在你的项目中,有哪些地方可以用Function接口优化?欢迎在评论区分享你的想法!💬👋。

2025-04-17 23:31:12 915

原创 Optional 到底有没有用?看完源码我才知道它设计的精妙!

Optional不是银弹,但它确实:✔️ 让null检查更显式✔️ 减少✔️ 提供更优雅的链式调用✔️ 强制开发者考虑空值情况✔️ 与函数式编程完美配合关键点记住:Optional是用来处理返回值的,不是用来替代所有null检查的!希望这篇文章让你对Optional有了全新认识!下次见到Optional时,记得它的设计哲学是"显式优于隐式"。💻✨。

2025-04-17 23:30:48 877

原创 Stream 并不只是 map 和 filter,背后还有这些你不知道的坑!

自定义收集器可能比你想象的复杂!// 自定义收集器:将字符串连接并用逗号分隔},(sb1, sb2) -> { // combiner (用于并行流)},// 输出: Apple, Banana, Cherry虽然 Java 提供了很多内置收集器,但有时我们需要自定义。自定义收集器需要实现四个函数:supplier、accumulator、combiner 和 finisher。特别是 combiner,它在并行流中至关重要。Stream 只能被消费一次。

2025-04-17 23:30:17 922

原创 策略工厂 + SpringBoot 配置驱动注册玩法:让代码像乐高一样灵活拼装!

milk-tea:策略模式:把不同算法封装成独立组件 🧩工厂模式:统一管理和获取这些组件 🏭配置驱动:让组件注册更灵活,无需修改代码 ⚙️下次当你发现代码中有大片的if-else或者switch-case时,不妨考虑用这个优雅的方案重构吧!✨怎么样,是不是感觉这个设计模式超级实用呢?😊 如果有任何问题或者想了解更多细节,欢迎在评论区留言讨论哦~ 💬👍✨#Java #设计模式 #SpringBoot #策略模式 #编程技巧。

2025-04-17 23:29:35 544

原创 配合 Spring Bean 注入,把 Function 管理起来?

合理命名- 给函数起个见名知意的好名字单一职责- 每个函数只做一件事适当组合- 像搭积木一样组合简单函数文档注释- 特别是对复杂函数单元测试- 确保每个函数都可靠性能考量- 避免在函数中做耗时操作。

2025-04-17 23:29:09 692

原创 Java Stream 并不只是 map 和 filter,背后还有这些你不知道的坑!

了解各种操作的特性(有状态/无状态、短路等)并行流不是万能的注意线程安全和副作用掌握高级操作让代码更优雅Stream 是处理数据的流水线,不是银弹!要根据场景选择最适合的工具哦~ 🛠️大家还有什么 Stream 的坑或技巧?欢迎评论区分享!👇😊。

2025-04-17 23:28:45 798

原创 Lombok @Builder 注解的进阶玩法:自定义 Getter/Setter 方法全攻略

你想在设置年龄时检查是否合法(比如不能为负数)你想在获取邮箱时自动转为小写你想对某些字段进行加密/解密处理这时候,默认的 getter/setter 就不够用了,我们需要自己动手!🛠️@Builder// 自定义 getter= null?// 自定义 setterthrow new IllegalArgumentException("年龄不能为负数!");但是!这样直接添加 getter/setter 会导致@Builder生成的 builder 类忽略你的自定义方法。😱。

2025-04-17 23:28:23 1031

2023最新AI大模型学习与讨论

2023最新AI大模型学习与讨论:探索未知的智能边界! 迎接2023年,AI领域正迎来一场革命性的学术盛宴!我们诚邀您加入“2023最新AI大模型学习与讨论”——这是一个汇聚顶尖智能科学家、工程师和学者的独特平台,将AI的最新进展推向更高的高度。 在这里,您将深入了解2023年最激动人心的AI大模型,通过与同行的交流,共同揭开智能技术的神秘面纱。我们将探讨自然语言处理、计算机视觉、强化学习等领域的前沿研究,分享最新的模型架构、算法和应用案例。 无论您是刚踏入AI领域的新手,还是经验丰富的专业人士,这个学习与讨论的平台都为您提供了一个开放、包容的环境,让您可以与全球最杰出的思想领袖互动,共同推动AI技术的发展。 别错过这个与全球顶级AI专家交流见解的机会!加入我们,共同塑造未来智能的面貌,探索AI大模型的无限可能性! 看完可以了解AI大模型及微调概念、学以致用,走在技术最前沿

2024-01-17

截图工具FastStone.zip

截图工具方便下载

2021-03-28

最新反编译软件.zip

github下载太慢了, 所以上传一个以后备用, 大家也可以多多下载,用来理解源码执行顺序非常有好处

2021-03-14

春季面试突击版.zip

每次到了跳槽季,都要努力冲刺一波,刷刷面试, 这里准备了一份比较全的面试题,用来冲刺突击

2021-03-06

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

TA关注的人

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