自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 Spring Gateway 全面解析:从入门到进阶实践​

本文详细介绍了SpringCloud Gateway作为微服务API网关的核心功能与应用实践。文章首先阐述了SpringGateway在微服务架构中的关键作用,包括路由转发、负载均衡、权限认证等能力,并对比了其与Zuul的性能优势。随后深入讲解了SpringGateway的三大核心组件(路由、断言、过滤器)及其工作原理。 通过实战案例演示了如何快速搭建基础网关服务,包括环境准备、依赖引入、路由规则配置等步骤。文章重点剖析了限流配置(基于Redis)、熔断降级(集成Sentinel)和全局过滤器(统一鉴权)等

2025-10-08 11:48:19 1332 1

原创 Java 集合框架之 Set 详解:特性、实现类与实战应用

本文系统介绍了Java中的Set集合接口及其实现类。Set作为不重复元素集合,主要包括三种实现:HashSet(无序高效)、TreeSet(自动排序)和LinkedHashSet(保持插入顺序)。文章详细分析了各实现类的特性、性能差异及适用场景,并提供了去重、集合运算等典型应用示例。特别强调了自定义对象作为Set元素时需重写hashCode()和equals()方法的重要性,以及线程安全性等注意事项,为开发者合理选用Set实现类提供了实用指导。

2025-10-07 15:16:27 959

原创 Java 队列详解:从基础到实战应用

队列是 Java 中一种重要的数据结构,Java 集合框架提供了多种队列实现,适用于不同的场景。从基础的LinkedList到并发环境下的,每种实现都有其特点和适用范围。掌握队列的使用不仅有助于我们编写更高效的代码,也能帮助我们更好地理解和实现复杂的算法和设计模式。在实际开发中,合理选择和使用队列可以提高程序的性能和可维护性。希望本文能帮助读者全面了解 Java 队列,并在实际项目中灵活运用这一强大的数据结构。

2025-10-06 18:49:37 549

原创 数据库慢查询:从定位到优化,一文搞定性能瓶颈

数据库慢查询是后端开发中常见的性能问题,表现为执行时间超过预设阈值的SQL语句。文章详细介绍了如何开启和配置MySQL慢查询日志,包括临时和永久两种方式。通过mysqldumpslow或Percona Toolkit等工具分析日志,可定位问题SQL。核心优化方案包括:优化SQL语句写法(避免低效操作)、合理创建索引、大表拆分、引入缓存以及读写分离等技术手段。文章强调这是一个“定位→分析→优化→验证”的循环过程,建议优先从SQL和索引优化入手,再考虑分表等复杂方案。

2025-09-28 11:17:15 1327

原创 栈与队列:数据结构中的 “孪生兄弟”,从原理到实战

本文系统介绍了栈与队列两种基础数据结构。栈遵循"后进先出"原则,可通过数组或链表实现,应用于函数调用、表达式求值等场景;队列遵循"先进先出"原则,有循环队列和链式队列两种实现方式,广泛应用于消息队列、任务调度等领域。文章通过Java代码示例详细展示了各类实现方法,并对比了两者的核心特性与适用场景。掌握这两种数据结构对学习复杂算法和系统设计具有重要意义。

2025-09-20 08:30:00 815

原创 深入理解三色标记算法:垃圾回收的核心利器

本文系统介绍了垃圾回收中的三色标记算法。该算法通过白、灰、黑三种颜色标记对象状态,支持并发标记以减少STW时间。文章详细阐述了算法原理、流程,并重点分析了并发场景下的漏标问题及其解决方案(写屏障和增量更新)。尽管存在实现复杂等缺点,三色标记算法仍是现代高性能垃圾回收器(如G1、ZGC、Go GC)的核心技术,为低延迟垃圾回收提供了理论基础。文章最后强调算法在并发与准确性之间的权衡价值,为理解内存管理机制提供了重要视角。

2025-09-18 18:41:02 859

原创 MySQL 索引详解:原理、类型与优化实践

本文深入解析MySQL索引优化,从B+树底层原理到实战应用。重点对比聚簇索引与非聚簇索引的区别,详解主键、唯一、普通等5种索引类型的适用场景。特别强调联合索引的最左前缀原则和8种常见索引失效情况,如表达式操作、模糊查询%开头等。最后给出5大优化技巧:合理控制索引数量、选择高区分度字段、设计联合索引考虑覆盖查询、定期维护碎片化索引、通过慢查询日志定位问题。建议定期分析索引使用情况,平衡查询性能与写入效率,避免过度索引带来额外开销。

2025-09-17 19:08:33 1120

原创 Java 中 ArrayList 与 LinkedList 的深度对比:从原理到实战选择

本文对比分析了Java中ArrayList和LinkedList的核心差异。ArrayList基于动态数组实现,支持O(1)随机访问,但中间插入/删除需移动元素;LinkedList采用双向链表结构,中间操作仅需调整指针但访问需遍历。内存方面,ArrayList空间利用率更高,LinkedList每个节点需额外存储指针。实践建议:随机访问多选ArrayList,频繁中间操作选LinkedList,小数据量差异可忽略。理解两者底层原理有助于根据具体场景做出最优选择,提升代码效率。

2025-09-17 15:36:25 935

原创 深入理解反射:从原理到实践,解锁编程语言的 “元编程” 能力

本文深入解析反射机制在编程中的核心作用与应用。反射允许程序在运行时动态获取和操作类结构,是框架开发和动态调用的关键技术。文章通过Java和Python实例演示了反射的具体实现:Java围绕Class类进行对象创建、属性修改和方法调用;Python则通过globals()和getattr()等实现更简洁的动态操作。反射虽能提升灵活性,但也存在性能损耗、可读性差和安全风险等问题。建议在框架开发、通用工具等场景合理使用,而业务代码中谨慎权衡。掌握反射的边界与最佳实践,方能发挥其最大价值。

2025-09-16 14:15:09 757

原创 JVM性能优化实战:让Java应用飞起来的核心技巧

本文深入探讨JVM性能优化的核心原理和实用技巧。首先解析JVM内存结构,包括堆内存、方法区等关键区域;其次介绍不同垃圾收集器(串行、并行、CMS、G1等)的适用场景和配置参数;重点讲解堆内存设置、GC日志分析等关键调优技巧,并给出电商应用优化案例;最后推荐监控诊断工具和常见问题解决方案。文章强调JVM优化需结合监控数据持续调整,建议通过基准测试验证参数效果,并指出代码优化比单纯调参更重要。

2025-09-15 09:49:42 766

原创 哈希算法:从原理到实践,一文读懂数据指纹技术

哈希算法是计算机领域的重要技术,通过固定长度输出、单向不可逆等特性实现数据指纹功能。文章全面介绍了哈希算法的定义、核心特性(定长输出、单向不可逆、雪崩效应、抗碰撞性),对比分析MD5、SHA-1、SHA-2、SHA-3等算法的特点与应用场景,并详细说明其在密码存储、文件校验等场景的实际应用。同时指出哈希碰撞等安全风险,提出算法选型、加盐等防护建议,强调SHA-256在安全与性能间的平衡优势。

2025-09-12 10:29:47 2003

原创 Docker 从入门到实践:容器化技术核心指南

Docker容器化技术实战指南 本文系统介绍了Docker的核心概念、安装部署和实战应用。主要内容包括: Docker核心概念:解析镜像、容器、仓库的关系,对比Docker与虚拟机的差异 多平台安装指南:详细说明Linux、Windows/Mac系统的安装步骤 常用命令详解:涵盖镜像管理、容器操作等核心命令 实战案例:演示Nginx服务部署和SpringBoot+MySQL多容器编排 常见问题解决方案:镜像加速、数据持久化等实用技巧 文章还提供了DockerCompose编排工具的使用方法和进阶学习方向,帮

2025-09-11 17:04:24 1042

原创 Redis 五种基础数据类型详解:特性、用法与实战场景

Redis五种数据类型核心解析 Redis作为高性能中间件,提供五种基础数据类型满足多样化需求:String(字符串)支持文本/二进制存储和原子操作,适用于缓存和计数器;Hash(哈希)以键值对集合形式存储对象,节省内存;List(列表)作为双向链表实现高效队列/栈操作;Set(集合)提供去重元素存储和集合运算;ZSet(有序集合)通过分数排序实现排行榜功能。每种类型都有特定命令和适用场景,合理选择能显著提升系统性能。本文详细解析了各类型的核心特性、常用命令和典型应用场景,并附有选型指南,帮助开发者充分发挥

2025-09-11 08:00:00 1855

原创 MySQL慢查询

MySQL慢查询是指执行时间超过设定阈值的SQL语句,默认阈值为10秒,但实际业务中需根据场景调整。开启慢查询日志后,可通过mysqldumpslow或pt-query-digest工具分析慢查询日志,找出执行次数多、耗时长的SQL。优化慢查询的核心是减少数据扫描量,主要手段包括:通过explain分析执行计划、添加合适的联合索引、重构SQL语句避免使用select*和or条件、避免在索引字段上使用函数等。对于大数据量表可考虑分表分库,高频查询数据可使用缓存。这些方法能显著提升数据库查询性能。

2025-09-10 15:49:35 1374

原创 Redis哨兵机制详解:保障高可用的核心技术

本文介绍了Redis哨兵机制的功能原理与部署实践。哨兵机制通过监控、自动故障转移和配置中心三大功能,解决Redis单点故障问题,提升服务可用性。文章详细解析了哨兵的工作机制(包括主观/客观下线判断和故障转移流程)、部署配置方法(包含示例配置和启动方式)以及客户端连接实现。特别强调了部署奇数个哨兵节点、网络分区处理等注意事项,并对比了哨兵与Redis集群方案的适用场景。该机制是构建高可用Redis服务的关键技术,需配合合理配置和监控系统使用。

2025-09-10 08:00:00 1386

原创 Redis 持久化深度解析:RDB与AOF原理、配置及选型实战

Redis持久化是防止数据丢失的关键机制,主要包括RDB和AOF两种方案。RDB通过定时快照保存数据,具有文件小、恢复快的特点,但可能丢失两次快照间的数据。AOF则记录所有写命令,数据安全性更高但文件体积较大。实际应用中,RDB适合备份恢复,AOF适合数据安全要求高的场景。配置时需注意同步策略(如AOF的appendfsync)和触发条件(如RDB的save规则),避免性能问题。建议根据业务需求选择合适的持久化方案,或同时使用两种方式,并定期备份持久化文件以确保数据安全。

2025-09-09 08:30:00 981

原创 IO流详解:从基础概念到实战优化,一篇搞定文件读写

最后用一张表总结不同场景下的 IO 流选型,帮你快速决策:​场景​推荐流组合​核心优势​文本文件读写(默认编码)​缓冲提升性能,避免乱码​文本文件读写(指定编码)​InputStreamReader + OutputStreamWriter + 缓冲流​自定义编码,适配多系统​二进制文件读写​批量读写,减少 IO 次数​大文件(GB 级)处理​零拷贝,性能最优​内存中读写数据​无需磁盘,纯内存操作​。

2025-09-07 23:57:16 729

原创 解密 MVCC:MySQL 事务隔离的 “魔法”,告别脏读幻读的底层原理

MySQL的InnoDB引擎通过MVCC(多版本并发控制)实现高效并发事务处理。MVCC的核心机制包括:1)隐藏列记录事务ID和回滚指针;2)undo log存储历史版本数据;3)ReadView决定事务可见性。该机制让读写操作互不阻塞,读事务通过快照读取历史版本,写事务修改新版本。在"读已提交"级别下,每次查询生成新ReadView;"可重复读"级别则复用首次ReadView。MVCC有效解决了脏读、不可重复读等问题,同时保持较高性能,是InnoDB成为MySQL默

2025-09-04 08:30:00 1222

原创 深入理解 AQS:Java 并发编程的核心基石

AQS(AbstractQueuedSynchronizer)是Java并发编程的核心框架,为JUC同步工具类提供基础支持。它采用state变量表示同步状态,通过CLH队列管理等待线程,支持独占和共享两种访问模式。AQS采用模板方法设计,子类只需实现tryAcquire/tryRelease等方法即可自定义同步器。ReentrantLock、Semaphore等工具类都基于AQS实现。其核心优势在于将通用同步逻辑与具体策略分离,采用CAS等高效操作,同时支持公平/非公平模式。深入理解AQS有助于优化并发程序

2025-09-03 08:00:00 1189

原创 JUC 并发集合:高效处理多线程数据共享的利器

Java并发编程中的JUC集合框架提供了高效线程安全的数据结构,包括ConcurrentHashMap、CopyOnWriteArrayList、BlockingQueue等,通过CAS、分段锁、写时复制等机制实现高并发性能。相比传统同步集合,JUC集合具有更好的吞吐量和弱一致性迭代器特性。文章详细介绍了各类JUC集合的特点、适用场景和使用示例,并提供了选择指南,帮助开发者根据读/写比例、阻塞需求、排序要求等条件选择最合适的并发集合,以构建高性能的并发程序。

2025-09-02 22:58:18 833

原创 Java 并发编程之 ReentrantLock 可重入锁详解

本文介绍了Java并发编程中的ReentrantLock锁机制。ReentrantLock作为synchronized的替代方案,具有可重入性、公平锁选择、可中断获取、超时等待等特性。文章详细讲解了其基本使用方法,包括创建实例、加锁解锁操作,并通过示例代码演示了可重入特性。同时对比了ReentrantLock与synchronized的区别,指出前者在功能性和灵活性上的优势,适用于需要复杂锁控制的并发场景。最后强调使用时需注意锁释放,合理选择锁模式以保证线程安全与性能平衡。

2025-09-02 19:40:15 1100

原创 《Java 守护线程:藏在用户线程身后的 “隐形服务员”,何时该用?何时该弃?》

Java多线程编程中,守护线程(Daemon Thread)是为用户线程提供服务的"后台工作者",其生命周期完全依赖用户线程。当所有用户线程结束时,JVM会直接退出而不等待守护线程完成。守护线程适合处理日志打印、监控、非核心定时任务等辅助性工作,但严禁用于核心业务逻辑或临界资源操作。使用时需注意:必须在start()前调用setDaemon(true)、避免长时间阻塞、做好中断处理。与用户线程不同,守护线程创建的新线程默认也是守护线程,且异常不会影响JVM。合理使用守护线程能提高资源利用

2025-09-02 15:21:00 644

原创 线程的常用方法:从原理到实战,一篇搞定线程控制

本文系统梳理了Java线程的常用方法及其使用场景,包括start()与run()的区别、sleep()与yield()的差异、join()实现线程同步、interrupt()中断机制以及线程优先级设置。重点解析了各方法的底层原理、状态转换关系,并通过代码示例演示实际应用。文章还对比了易混淆概念(如sleep()与wait()),解答了常见面试问题,强调要避免使用废弃方法(stop()/suspend())。掌握这些线程控制方法是并发编程的基础,理解其设计逻辑和注意事项,才能在实际开发中实现高效并发控制。

2025-09-02 12:01:08 955

原创 MySQL 事务深度解析:从原理到实践,帮你搞定数据一致性难题

MySQL事务是保障数据一致性的关键技术,核心在于ACID特性:原子性通过undolog实现回滚,一致性确保业务规则不被破坏,隔离性通过锁机制和MVCC避免并发问题,持久性依赖redolog保证数据不丢失。文章详细解析了4种隔离级别对脏读、不可重复读和幻读的解决程度,默认RepeatableRead适合多数场景。InnoDB锁机制中,行锁基于索引实现,无索引会升级为表锁,需注意死锁问题。实战部分提供事务问题排查方法(如查看INNODB_TRX表)和优化技巧(缩短事务、合理索引)。掌握这些知识能有效解决80%

2025-09-02 08:30:00 1534

原创 从原理到落地:UDP 协议深度解析与实战指南(含面试避坑)

UDP协议因其轻量高效特性在实时通信、物联网等领域占据核心地位。本文从协议设计底层解析UDP的四大核心特性和数据结构,对比UDP与TCP的适用场景差异,并通过Java实战演示UDP通信流程。针对UDP的"不可靠"特性,提出应用层可靠性方案和工业级协议选择建议,最后梳理面试高频考点。文章打破对UDP的片面认知,帮助开发者根据实际需求选择最优传输方案,在高并发、低延迟场景中发挥UDP的最大价值。

2025-09-01 12:51:46 1070

原创 SpringBoot 自动配置深度解析:从注解原理到自定义启动器​

本文深入解析了SpringBoot自动配置的核心机制。通过Conditional条件注解实现灵活的Bean注册控制,@Enable系列注解提供统一功能开关,@EnableAutoConfiguration作为自动配置触发器。文章详细介绍了自动配置流程,包括加载候选配置、条件过滤和有效配置导入。并以实战案例演示了如何实现自定义启动器,包括创建属性类、自动配置类及注册到spring.factories的过程。最后提供了调试自动配置的实用技巧(如开启debug日志),并强调自动配置"约定大于配置&quo

2025-08-23 09:00:00 719

原创 Spring Bean 的生命周期:从创建到销毁的完整旅程​

本文详细解析了Spring Bean的生命周期,包括四个主要阶段:实例化(通过反射创建Bean对象)、属性注入(依赖注入)、初始化(执行自定义初始化逻辑)和销毁(资源清理)。重点介绍了初始化阶段的关键节点(Aware接口、BeanPostProcessor处理、三种初始化方式)和销毁阶段的执行顺序。文章还总结了生命周期的完整执行流程,并指出在实际开发中的应用场景,如资源管理、依赖检查和AOP增强等。理解Bean生命周期有助于开发者更好地利用Spring框架特性,编写更健壮的代码。

2025-08-17 18:39:09 906

原创 计算机网络必学:TCP 协议的可靠性保障与拥塞控制策略

本文介绍了TCP协议的核心特性与机制。TCP是一种面向连接的可靠传输层协议,通过三次握手建立连接、四次挥手释放连接,并采用字节流传输方式。其关键机制包括:可靠性传输(确认应答、超时重传)、流量控制(滑动窗口)和拥塞控制(慢启动、拥塞避免、快速重传、快速恢复)。文章详细解析了TCP的四种拥塞控制算法及其协同工作原理,以及三种重传机制(超时重传、快速重传、SACK选择性确认),这些机制共同保障了TCP协议在网络通信中的可靠性和高效性。

2025-08-14 08:30:00 751

原创 深入理解《MyBatis核心原理》

本文介绍了MyBatis框架的核心概念与基本使用。MyBatis是一个轻量级半自动化的ORM框架,相比JDBC减少了重复代码,相比Hibernate保留了SQL灵活性。文章详细讲解了MyBatis环境搭建步骤,包括Maven依赖配置、核心配置文件编写、Mapper接口与映射文件定义等。重点分析了MyBatis的核心工作流程,包括SqlSessionFactory创建、动态代理机制实现SQL调用,以及常用动态SQL标签的使用方法。同时介绍了resultType和resultMap两种结果映射方式的应用场景。M

2025-08-10 15:36:10 840 3

原创 计算机网络【HTTP协议】

HTTP协议是用于服务器与浏览器间传输超文本数据的应用层协议,默认使用80端口。其通信过程包括建立TCP连接、发送请求报文、服务器处理并返回响应报文等步骤。HTTP报文分为请求报文和响应报文,均包含起始行、首部字段和内容主体。常见请求方法有GET、POST等,区别在于GET用于获取数据,POST用于提交数据。服务器通过状态码(如200成功、404未找到、500服务器错误等)告知请求处理结果。该协议通过标准化通信格式实现了高效的网络数据传输。

2025-08-05 08:00:00 1318

原创 计算机网络【01网络分层模型】

网络模型是计算机网络中规范数据传输的分层框架,主要包括OSI七层模型和TCP/IP四层模型。OSI模型分为应用层、表示层等七层,而实际使用的TCP/IP模型简化为应用层、传输层、网络层和网络接口层四层。分层设计使各层专注特定功能,简化了复杂通信过程。TCP/IP模型中,应用层处理报文,传输层负责可靠/非可靠传输,网络层处理IP寻址和路由,网络接口层管理物理传输。这种分层架构通过标准化接口实现兼容互通,降低了网络开发和维护的复杂度。

2025-07-30 16:09:03 539 1

原创 深入理解《三色标记算法》

三色标记算法是垃圾回收中的核心方法,将对象分为白色(未处理)、灰色(处理中)和黑色(已处理)。算法从根对象开始,通过递归标记将可达对象逐步转为黑色,最终白色对象被回收。该算法存在漏标问题,当黑色对象引用白色对象且灰色对象断开引用时,会导致错误回收。解决方案包括增量更新(记录新引用)和原始快照(记录删除的引用),分别应用于CMS、G1和ZGC等回收器。

2025-07-28 12:03:42 506

原创 JVM(虚拟机)垃圾收集器

本文介绍了JVM垃圾回收机制的核心内容:1.判断对象存活的两种算法:引用计数法(存在循环引用问题)和可达性分析算法(JVM默认使用);2.垃圾收集算法:标记-清除(易产生碎片)、标记-整理(适合老年代)和复制算法(适合新生代);3.基于分代理论的分区收集策略;4.常见垃圾收集器特点:Serial(单线程)、ParNew/ParallelScavenge(多线程复制)、CMS(并发低停顿)和G1(区域化分代收集)。不同收集器针对新生代/老年代采用不同算法,根据应用需求选择。

2025-07-26 14:50:34 407

原创 深入理解Java类加载机制

摘要:类加载是JVM动态加载类的过程,包括加载、验证、准备、解析和初始化五个阶段。类加载时机分为主动引用(如new指令、反射调用等)和被动引用。类加载器分为启动类加载器、扩展类加载器和应用类加载器,采用双亲委派机制确保基础类一致性。对象创建过程包括类加载检查、内存分配、初始化、设置对象头和执行构造方法。该机制实现了类的按需加载和安全性保障。(149字)

2025-07-24 15:48:44 275

原创 揭秘线程池状态:高效管理的关键

线程池状态管理是Java并发编程的关键。线程池包含5种状态:RUNNING(接收新任务)、SHUTDOWN(不接收新任务但处理队列任务)、STOP(中断所有任务)、TIDYING(任务终止)和TERMINATED(彻底关闭)。错误的状态管理会导致任务拒绝、资源泄漏等问题。使用线程池需注意参数设置(核心线程数、队列容量等)、合理选择拒绝策略(如AbortPolicy)、及时关闭资源并实现异常处理机制。掌握状态转换规则能有效避免常见问题,提升系统性能。

2025-07-23 09:00:00 568

原创 线程池核心配置与实战指南

线程池是一种线程管理机制,通过复用线程资源提高系统性能。它预先创建并维护一定数量的线程,任务提交后由空闲线程执行,执行完毕线程返回池中待命。线程池可避免频繁创建/销毁线程的开销,适用于高并发处理场景。核心配置参数包括线程数、队列类型和拒绝策略。根据任务类型(CPU/IO密集型)可调整线程数,队列选择需考虑内存限制。线程池有固定、缓存、定时等多种类型,各有适用场景和潜在风险。线程池包含RUNNING、SHUTDOWN等5种状态,反映其生命周期变化。合理配置线程池能有效提升系统吞吐量和稳定性。

2025-07-22 09:24:12 958

原创 深入理解CAS机制与实现原理

CAS(比较并交换)是一种无锁的线程同步机制,通过比较内存值与期望值来决定是否更新。Java中通过Unsafe类实现,使用CPU指令保证原子性。CAS广泛应用于AtomicInteger等场景,解决了线程安全问题,但存在循环开销大、单变量限制和ABA问题(值被修改后恢复原值导致误判)。ABA问题可通过版本号等机制解决。

2025-07-19 11:58:57 1052

原创 ArrayList源码分析

/ 移除指定元素: // 1. 处理null值情况 // 2. 遍历查找元素 // 3. 找到后调用fastRemove // 4. 返回是否移除成功。// 查找元素首次出现位置: // 1. 处理null值情况 // 2. 遍历数组查找匹配元素 // 3. 返回索引或-1。//添加元素步骤: // 1. 确保容量足够 // 2. 在数组末尾添加元素 // 3. 返回true表示添加成功。// 内部容量检查: // 1. 计算所需最小容量 // 2. 触发显式容量检查。

2025-04-14 22:22:24 973 1

原创 数组的冒泡排序详解

首先冒泡排序的原理是:相邻的数据两两交换位置,,默认大的放到后面,小的放到前面。外层循环控制排序的轮数,一共需要进行轮排序。内层循环用于比较相邻的元素,如果前一个元素大于后一个元素,则交换它们的位置。是为了确保只有当前一个元素大于后一个元素时才进行交换,这样可以实现升序排序。使用将排序后的数组转换为字符串,通过输出。总的来说冒泡排序就是在多次的循环下对相邻的数据进行大小判断进而交换位置,从而实现排序。

2025-03-10 15:56:31 288 1

原创 Java中的数据类型详解(完整版)

1.首先Java中的数据类型分为两大部分:基本类型和引用类型。2.先说基本类型吧,它是在“栈”里分配内存空间。分为两种:数值型和非数值型。3.数值型(一共有6种),包括整型和浮点型,其中整型有:byte、short、int、long;它们分别占的字节数为1、2、4、8;浮点型有:float、double;它们分别占的字节数为4、8。4.非数值型(一共有2种),包括布尔型和字符型,其中布尔型(boolean)占4个字节,字符型(char)占2个字节。5.接下来我们说引用类型,它是在“堆”中分配内存空间的,包括

2025-03-10 14:37:11 437 2

空空如也

空空如也

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

TA关注的人

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