自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

龚小帅的博客

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

  • 博客(620)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2022-12-28 14:45:39 1852

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

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

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

原创 《写出可维护的 Java 枚举:从简单常量到策略封装的演化之路》

枚举(Enum)是Java 5引入的一种特殊数据类型,它允许我们定义一组命名的常量。这里我们定义了一个表示星期的枚举,简单吧?😉枚举不仅仅是常量集合,它可以有属性、方法、构造器枚举可以实现接口和抽象方法,实现多态行为枚举是实现单例模式的最佳方式枚举可以优雅地实现策略、状态、命令等设计模式EnumSet和EnumMap是处理枚举集合的高效工具枚举非常适合实现状态机等固定状态流转的场景枚举是Java中一个被低估的特性,用好了可以让代码更安全、更简洁、更优雅!

2025-06-13 00:35:31 559

原创 《深入理解 Optional:如何优雅处理 Java 中的 null?》

让null处理更显式、更优雅减少NPE的发生提供流畅的API强迫你考虑值不存在的情况永远不要返回null,返回Optional.empty()不要用Optional包装集合或数组不要把Optional用作字段或方法参数避免直接调用get(),多用orElse/orElseGet/orElseThrowOptional就像是一个"可能装有宝贝的盒子"🎁,每次打开前你都知道要小心检查,而不是直接伸手去抓可能不存在的宝贝!希望这篇文章能帮你彻底掌握Optional!

2025-06-13 00:35:01 436

原创 《反编译一个 Java 类文件:Javac 都帮我们干了什么?》

Java字节码:从入门到精通 摘要:本文用通俗易懂的方式讲解了Java字节码的核心知识。首先介绍了Java程序从源代码到运行的生命周期,类比咖啡制作过程。然后深入解析了字节码的本质、.class文件结构(包括魔数、常量池等8大组成部分),并演示了如何查看字节码。通过实际代码示例,展示了Java源码与字节码指令的对应关系,介绍了常见字节码操作工具(ASM、Javassist等)和优化技巧。最后探讨了字节码常见问题及高级话题,为读者全面理解Java运行机制提供了清晰路径。

2025-06-10 21:04:57 657

原创 《NIO 是怎么做到高性能的?从 Selector 到 Channel 的全链路剖析》

首先,NIO是"New I/O"的缩写,是Java 1.4引入的一套新的IO API。它和传统的IO(就是我们常说的BIO,Blocking I/O)最大的区别就是——不阻塞!🚫⏳传统IO(BIO):就像你去银行柜台办业务,必须排队等柜员处理完前一个人才能轮到你,期间你啥也干不了(阻塞)NIO:就像银行的取号系统,你取个号就可以去干别的事,等叫到你的号时再去处理(非阻塞)是不是感觉NIO聪明多了?

2025-06-10 21:04:09 496

原创 《为什么 String 是 final 的?Java 字符串池机制全面解析》

想象你手里拿着一块冰🧊,你想把它变成水💧,你能直接改变这块冰吗?不能!你必须融化它,得到新的水。Java中的String就像这块冰——一旦创建就不能被改变。String name = "小明";name = "小红";// 这不是改变了"小明",而是创建了新的"小红"对象String像冰块一样不可变❄️:任何修改操作都创建新对象字符串池是内存优化的关键🏊:重用相同字面量节省内存拼接字符串要用StringBuilder🛠️:避免大量临时对象不可变性带来安全性和性能🚀:哈希缓存、线程安全等好处。

2025-06-10 21:03:09 466

原创 《Java I/O 到底有多慢?一文看懂 BIO、NIO、AIO 差异与选型》

BIO:简单但效率低,适合低并发场景NIO:高性能之选,但API复杂AIO:真正的异步,但生态不完善协程:Project Loom将带来更轻量的线程更智能的调度:自适应选择I/O策略硬件加速:如DPDK提升网络性能记住,没有最好的I/O模型,只有最适合的!并发规模业务特点团队能力运维成本希望这篇长文能帮你彻底理解Java I/O模型!如果有问题,欢迎留言讨论~ 😊🎉👨‍💻。

2025-06-10 21:01:54 553

原创 《自定义注解怎么用才专业?反射 + 元注解 + 框架集成实战》

内置注解虽好,但有时候我们需要自己的"标记"!自动生成代码 ✨在编译时检查代码问题 🔍运行时通过反射获取信息 🕵️简化配置,替代XML 📝举个实际例子🌰:假设我们想自动生成数据库表的创建SQL,可以定义一个@Table定义注解超级简单!public @interface 注解名 {// 注解属性今天我们深入探讨了Java注解和注解处理器的方方面面!注解是代码的元数据,不会直接影响程序逻辑通过元注解可以自定义注解的行为注解处理器在编译时处理注解,可以生成代码或报告错误。

2025-06-07 00:21:41 1039

原创 《JVM 启动参数怎么写最优?从 Xms 到 GCLog 的调优实践》

大家好呀!今天咱们来聊聊Java虚拟机的那些事儿~😊 作为一个Java程序员,JVM就像是我们最亲密的小伙伴,但很多同学对它又爱又恨。今天我就用最通俗易懂的方式,带大家彻底搞懂JVM参数配置和性能优化!🎯。

2025-06-07 00:20:54 1117

原创 《对象创建的秘密:Java 内存布局、逃逸分析与 TLAB 优化详解》

今天我们深入浅出地探讨了Java对象内存模型和JVM优化策略,从对象的内存布局到分配策略,从垃圾回收到性能优化,涵盖了大部分核心知识点。对象在内存中是"三居室"结构(对象头+实例数据+对齐填充)🏠JVM是个"智能管家",会自动做很多优化工作🤖优化要基于数据,不要盲目调参📊工具链是你的好帮手,学会使用各种诊断工具🛠️未来Java内存管理会越来越智能,比如ZGC和Shenandoah等新一代收集器已经可以实现亚毫秒级的停顿时间。但万变不离其宗,理解这些基础原理能让你在面对新技术时更快上手!

2025-06-03 21:14:12 1146

原创 《Spring Bean 是怎么被创建出来的?容器启动流程全景分析》

XML配置方式注解方式@ComponentJava配置方式@Bean准备阶段:登记配方(Bean定义)实例化:煮茶底(创建实例)属性赋值:加各种料(依赖注入)初始化:摇匀装饰(各种初始化回调)使用期:服务顾客(业务使用)销毁期:清理店铺(资源释放)生命周期回调就像奶茶制作的各个质检环节 ✅ApplicationContext启动过程就像奶茶店的开业准备 🏪各种Aware接口让Bean知道自己的"身份信息" 🆔BeanPostProcessor就像奶茶店的品控专员 🕵️♂️。

2025-06-03 21:13:18 1112

原创 《反射性能到底有多差?一文实测 + 优化方案全收录》

想象一下,你有一个魔法镜子🪔,不用打开盒子就能知道里面装了什么,还能直接操作里面的东西——这就是Java反射!它允许我们在运行时检查类、接口、字段和方法,甚至可以调用它们,而不需要在编译时知道这些类的具体信息。// 举个简单例子🌰");是不是很神奇?✨ 但魔法总是有代价的…反射是Java的强大特性,但性能确实是个问题。通过今天的分享,你应该已经掌握了:✅ 反射为什么慢 - 了解了5大原因✅ 7种优化方法 - 从缓存到MethodHandle✅ 最佳实践 - 如何安全高效使用反射。

2025-06-03 21:12:36 982

原创 《JVM 四种垃圾收集器的前世今生:从 Serial 到 G1 的演进之路》

本文通俗易懂地讲解了Java垃圾回收机制(GC)。GC就像自动保洁系统,帮助管理程序内存,防止内存泄漏和程序崩溃。文章详细介绍了: 分代收集理论:将内存划分为新生代、老年代等区域 7大垃圾收集器特点:包括Serial、Parallel、CMS、G1、ZGC等,各有适用场景 如何选择收集器:根据应用场景(如吞吐量、延迟需求)选择合适的GC 调优技巧:包括参数设置、问题排查和内存泄漏检测 未来趋势:向零停顿、AI调优方向发展 文章强调没有最好的GC,只有最适合的GC,建议根据应用特点选择合适方案。

2025-05-29 22:22:53 815

原创 《Map 到底适合用哪个?HashMap、TreeMap、LinkedHashMap 对比实战》

本文系统介绍了Java中常用的Map集合实现及其核心特性,主要包括HashMap、LinkedHashMap、TreeMap和线程安全的ConcurrentHashMap。HashMap采用哈希表实现,查询高效但无序;LinkedHashMap通过双向链表维护插入或访问顺序;TreeMap基于红黑树实现自动排序;ConcurrentHashMap则通过分段锁机制保证线程安全。文章详细解析了各Map的实现原理、性能特点和适用场景,并提供了典型用法示例,帮助开发者根据有序性、线程安全和性能等需求选择合适的Map

2025-05-29 22:21:54 1105

原创 《Java 架构中的 DTO 该怎么设计才不冗余?规范 + 示例全掌握》

DTO全称是Data Transfer Object(数据传输对象),简单来说就是一个专门用来在不同层之间传递数据的"盒子"📦。想象一下,你要给朋友寄礼物,不会直接把礼物扔过去吧?肯定要找个盒子装起来,DTO就是这个盒子!// 举个栗子🌰// 省略getter/setter好啦,关于DTO我们就聊到这里!🎤 记住,好的DTO设计就像精心包装的礼物,能让你的系统更加优雅、健壮。希望这篇"长篇大论"能帮你成为DTO设计高手!💪“DTO虽小,设计事大;数据传输,不可马虎!🚀😄👨💻。

2025-05-29 22:20:30 722

原创 《接口和抽象类到底怎么选?设计原则与经典误区解析》

本文用生动比喻讲解Java面向对象设计精髓,将OOP比作乐高积木:封装如保护壳,继承似亲子关系,多态像形态变化,抽象是设计图纸。通过学校管理系统案例,展示如何识别对象、定义类及建立关联。重点解析SOLID五大设计原则(单一职责、开闭原则等)及常用设计模式(工厂方法、单例模式等),强调"高内聚低耦合"设计理念。文章以积木类比,使抽象概念具象化,帮助读者理解面向对象设计的核心思维与实践方法。

2025-05-28 22:26:29 809

原创 《Java 项目中的工具类怎么设计才优雅?单一职责 + 命名规范 + 封装技巧》

Java工具类设计规范与代码复用最佳实践 本文详细介绍了Java工具类的设计规范和代码复用技巧。工具类用于封装通用功能,避免重复代码,具有代码复用、集中管理、提高可读性和便于测试等优势。规范包括:使用final修饰类、私有构造方法、静态方法、清晰命名(类名以Utils/Helper结尾)、单一职责方法设计、防御性编程和合理异常处理。代码复用方面,建议优先使用现有JDK/第三方工具类,采用组合优于继承,结合模板方法模式和函数式编程。高级技巧包括缓存计算结果优化性能。遵循这些实践可创建高效、易维护的工具类。

2025-05-28 22:25:49 529

原创 《异常链与统一异常处理机制设计:让 Java 项目更清晰可靠》

想象一下你正在做一道数学题🧮,突然发现题目要求除以零!这时候你肯定会停下来,因为"除以零"在数学中是没有意义的。在Java世界里,这种情况就是"异常"(Exception)。异常就是程序运行时发生的不正常情况,它会中断正常的指令流。Java把异常封装成了对象,这样我们就可以用面向对象的方式来处理它们了。💡异常传播就像"击鼓传花"游戏🥁,当异常在一个方法中抛出后,如果没有被捕获,就会沿着方法调用栈向上传播,直到被捕获或者到达最顶层导致程序终止。method2();method3();

2025-05-28 22:25:15 946

原创 《Java中的引用类型究竟怎么回事?从强到虚逐个击破》

本文生动讲解了Java的四种引用类型:强引用(💪)、软引用(🛋️)、弱引用(🍃)和虚引用(👻)。通过生活化的比喻(如人际关系、家居用品等),形象展示了不同类型引用的特点:强引用阻止GC回收;软引用在内存不足时回收;弱引用在GC时即回收;虚引用仅用于跟踪对象回收。文章详细分析了每种引用的适用场景、底层机制,并提供了代码示例,帮助开发者根据内存管理需求选择合适的引用类型,避免内存泄漏。

2025-05-26 22:22:24 954

原创 《一文掌握ClassLoader机制:类是怎么被加载进来的?》

简单说就是:“有事找爹妈,不行我再上” 😄当一个类加载器收到加载请求时,先不自己加载,而是委托给父加载器父加载器也这样,一直向上委托到Bootstrap如果父加载器无法完成加载(在自己的搜索范围没找到),子加载器才会尝试加载理论讲完了,来点实战!让我们写一个自己的类加载器吧!👨‍💻从非标准位置加载类(网络、加密文件等)实现热部署做类隔离(如Tomcat为每个Web应用使用独立类加载器)答:双亲委派是指类加载器在加载类时,先委托父加载器尝试加载,只有父加载器无法完成时才自己加载。

2025-05-26 22:21:26 570

原创 《彻底搞懂volatile关键字:可见性、有序性、内存屏障全解析》

volatile是Java中的一个关键字,用来修饰变量。它的主要作用是告诉JVM:“这个变量可能会被多个线程同时访问和修改,你要特别注意它的读写操作!” 🚨举个生活中的例子🌰:想象你在教室里和同学们一起玩传话游戏。老师把一句话告诉第一个同学,然后依次传下去。如果中间有同学记错了,最后的结果就会出错。volatile就像是老师用大喇叭📢对全班同学同时宣布消息,确保所有人都能直接听到原始信息,而不是通过中间人传递。今天我们深入探讨了Java中的volatile是什么。

2025-05-26 22:20:39 1674

原创 《企业级日志该怎么打?Java日志规范、分层设计与埋点实践》

Java日志系统是开发中不可或缺的"回放功能",能有效帮助调试、监控和分析程序。主流日志框架包括Log4j 2.x(高性能)、Logback(Log4j改进版)和JDK自带的JUL。SLF4J作为日志门面,提供了统一API并能灵活切换实现。日志级别从TRACE到FATAL逐级升高,应根据环境合理选择。配置日志时需考虑输出格式、滚动策略等,记录日志时应避免字符串拼接,正确使用占位符和异常打印。合理的日志架构设计能显著提升系统可维护性。

2025-05-24 22:38:25 723

原创 《Fastjson 与 Jackson 哪个更快?从序列化原理到实战性能对比》

Java主流JSON库性能比较与选型指南 本文对比了Java中5种主流JSON处理库(Jackson、Gson、Fastjson、Jsoniter、JSON-java)的性能表现。测试数据显示,Jsoniter在序列化(85ms)和反序列化(75ms)速度上表现最优,Fastjson和Jackson紧随其后。文章详细分析了各库特点:Jackson功能全面适合企业应用,GsonAPI简洁适合Android,Fastjson性能优异但安全性存疑,Jsoniter速度最快但生态较弱,JSON-java最轻量但功能

2025-05-24 22:37:35 1543

原创 《一文吃透Java中的线程池:原理 + 实战 + 性能优化》

本文通过生活化的比喻,详细介绍了Java线程池的概念、工作原理及其重要性。文章将线程池比作餐馆的厨房管理,核心线程如同固定厨师,任务队列则是待处理的菜单,而拒绝策略则对应餐馆爆满时的处理方式。线程池的主要优点包括降低资源消耗、提高响应速度和便于管理。文章还深入探讨了线程池的关键参数,如核心线程数、最大线程数、任务队列和拒绝策略,并介绍了四种预定义的线程池类型及其适用场景。最后,通过一个具体的例子,展示了线程池的工作流程,帮助读者更好地理解其在实际应用中的运作机制。

2025-05-20 22:35:07 689

原创 超详细图解Java类加载器原理与双亲委派机制(小学生都能懂版)

本文深入浅出地讲解了Java中的类加载器和双亲委派机制。类加载器负责将.class文件加载到JVM中,并转换为Class对象。Java默认提供三类加载器:Bootstrap、Extension和Application,它们分工明确。双亲委派机制是类加载的核心规则,即子加载器在加载类时先委托父加载器,确保类加载的安全性和唯一性。文章还介绍了打破双亲委派的情况,如SPI和OSGi,以及如何自定义类加载器。最后,总结了类加载器的核心思想,并提供了扩展阅读建议。

2025-05-20 22:34:01 998

原创 Java限流算法全攻略:从原理到实战,让系统稳如泰山!(超详细+通俗易懂版)

Java中的限流算法是保护系统免受突发流量冲击的关键技术,类似于高速公路的收费站,防止系统因请求过多而崩溃。常见的限流算法包括计数器法、滑动窗口、漏桶算法和令牌桶算法。计数器法简单但存在边界问题;滑动窗口更精确但稍复杂;漏桶算法提供恒定输出但不够灵活;令牌桶算法允许突发流量,适合大多数Web应用。Google的Guava库提供了基于令牌桶算法的RateLimiter工具类,便于实现限流。在分布式系统中,可以使用Redis + Lua方案进行分布式限流。限流算法确保系统在可控范围内处理请求,保障系统稳定运行。

2025-05-19 21:34:51 665

原创 《Java高并发编程核心:volatile关键字全解析》

本文深入探讨了Java中的volatile关键字,解释了其作用、特性、底层原理及使用场景。volatile主要用于保证变量的可见性和禁止指令重排序,但不保证原子性。它适用于状态标志位、单例模式的双重检查锁定等场景。常见误区包括认为volatile能替代synchronized或保证线程安全,实际上它仅适用于特定场景。与synchronized相比,volatile更轻量级,但不提供互斥性和原子性保证。正确使用volatile可以有效解决多线程环境下的内存可见性问题。

2025-05-19 21:34:11 935

原创 Java集合大PK:ArrayList vs LinkedList - 谁才是你的真命天子?

ArrayList和LinkedList是Java集合框架中两种常用的列表实现,各有优缺点。ArrayList基于动态数组,支持快速随机访问,适合频繁读取和尾部操作的场景;LinkedList基于双向链表,擅长频繁的插入和删除操作,尤其在列表中间或开头。ArrayList在内存占用上更高效,而LinkedList在特定操作上性能更优。选择时需根据具体需求:若需频繁访问元素或节省内存,选择ArrayList;若需频繁插入删除,选择LinkedList。理解两者的内部实现和性能特点,有助于在实际开发中做出更合适

2025-05-19 21:33:17 652

原创 Java注解与反射机制实战:从零到精通(超详细万字长文)

本文介绍了Java中的两个重要功能:注解(Annotation)和反射(Reflection)。注解是Java 5引入的语法,用于为代码添加标签,类似于便利贴,能够被编译器或其他工具读取和处理。常见的Java内置注解包括@Override、@Deprecated、@SuppressWarnings和@FunctionalInterface。元注解则用于定义其他注解的行为,如@Target、@Retention等。自定义注解可以通过@interface关键字定义,并可以添加属性。 反射机制允许在运行时检查和修

2025-05-19 21:31:45 806

原创 小学生都能懂的Java内存模型(JMM)终极指南:从可见性到重排序的完全解析

Java内存模型(JMM)是Java中用于规范多线程环境下内存访问行为的一套规则。它确保在多线程程序中,线程之间的操作能够有序、可见且原子地执行。JMM的核心概念包括主内存和工作内存,分别代表共享内存和线程私有内存。JMM通过定义内存间交互操作(如read、load、use、assign、store、write)来控制线程与内存的交互。 在多线程环境中,JMM解决了可见性和重排序问题。可见性指一个线程对共享变量的修改能够及时被其他线程看到,而重排序则是编译器和处理器为了优化性能而改变代码执行顺序的行为。JM

2025-05-19 21:30:22 627

原创 《JVM如何判断一个对象可以被回收?图文详解GC Root算法》

本文深入探讨了Java虚拟机(JVM)中的垃圾回收机制(GC)及GC Root可达性分析。首先,文章通过类比房间打扫卫生,解释了为什么需要垃圾回收,并介绍了垃圾回收的基本概念,包括什么是垃圾、为什么需要回收垃圾以及JVM中不同的垃圾收集器。接着,详细讲解了如何通过可达性分析算法判断对象是否为垃圾,并列举了GC Roots的主要类型。文章还通过代码示例展示了可达性分析的具体过程,并解释了对象的生死历程。最后,介绍了常见的垃圾回收算法(如标记-清除、标记-整理、复制算法和分代收集)及几种主要的垃圾收集器(如Se

2025-05-19 21:29:31 1118

原创 《为什么说“写好equals和hashCode”是Java面试生死题?》

在Java中,equals和hashCode方法是对象比较和哈希表操作的核心。equals用于判断两个对象在逻辑上是否相等,而hashCode则用于在哈希表中快速定位对象。重写equals方法时,必须遵循自反性、对称性、传递性、一致性和非空性等约定。常见的错误包括忘记重写、参数类型错误、使用instanceof等。hashCode方法必须与equals方法保持一致,即如果两个对象equals返回true,它们的hashCode也必须相同。违反这一约定会导致哈希表(如HashMap、HashSet)无法正常工

2025-05-14 00:47:08 1013

原创 《面试官问我Java中的AQS是啥,我这样答他当场满意》

AbstractQueuedSynchronizer(AQS)是Java并发编程的核心框架,为开发者提供了实现各种同步工具的基础。AQS通过状态管理、CLH队列和模板方法,简化了线程的排队、阻塞和唤醒等复杂操作。其主要特点是使用一个volatile的int变量表示同步状态,并通过CLH队列管理等待线程。AQS支持独占模式(如ReentrantLock)和共享模式(如CountDownLatch、Semaphore),开发者只需实现关键方法如tryAcquire和tryRelease即可定制同步行为。AQS的

2025-05-14 00:46:19 1016

原创 彻底搞懂Java中String的不可变性:为什么字符串一旦创建就不能改变?

在Java中,String的不可变性是一个核心概念,意味着一旦String对象被创建,其内容就不能被更改。这种设计通过使用final关键字修饰String类和其内部的字符数组来实现,确保了String对象的安全性、线程安全性和性能优化。不可变性使得String可以作为HashMap的键安全地使用,同时支持字符串常量池和哈希码缓存,提高了效率。在实际开发中,如果需要修改字符串内容,可以使用StringBuilder或StringBuffer等可变的替代方案。理解String的不可变性对于编写高效、安全的Jav

2025-05-11 21:12:52 1061 1

原创 《Java泛型擦除到底擦了什么?一篇文章彻底搞清楚》

Java泛型(Generics)是Java 5引入的重要特性,允许在定义类、接口或方法时使用类型参数,使用时再指定具体类型。泛型的主要优势包括类型安全、消除强制类型转换和提前发现错误。泛型的基本使用包括泛型类、泛型接口和泛型方法。Java泛型的实现机制是类型擦除(Type Erasure),即在编译时擦除泛型类型信息,确保向后兼容和运行时效率。类型擦除带来了一些限制,如不能创建泛型数组或使用instanceof检查泛型类型。泛型的高级特性包括通配符(Wildcards)和PECS原则(Producer Ex

2025-05-11 21:12:10 1106 2

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关注的人

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