- 博客(21)
- 收藏
- 关注
原创 希尔排序专栏
希尔排序是一种改进的插入排序算法,通过增量分组策略提升效率。它将数组按间隔分为子序列进行插入排序,逐步缩小间隔直至1。文章详细解析了希尔排序的Java实现,包括增量序列初始化、三重循环结构和排序过程。时间复杂度约为O(n^(3/2)),空间复杂度为O(1),属于原地但不稳定的排序算法。希尔排序适合中等规模数据集,在内存受限环境中表现优异。算法通过"宏观调整+微观优化"的策略,有效解决了插入排序处理大规模逆序数据的低效问题。
2025-08-14 12:04:25
173
原创 插入排序专栏
本文详细解析了插入排序算法,包括其工作原理、Java实现和时间复杂度分析。插入排序通过将数组分为已排序和未排序区间,逐步将元素插入到正确位置,平均和最坏时间复杂度均为O(n²),最好情况为O(n)。文章分析了不同情况下的性能表现,指出其适用于小规模或基本有序数据,并讨论了优化思路(如减少交换次数和使用二分查找)。作为稳定且空间复杂度O(1)的原地排序算法,插入排序在特定场景下效率较高,也可作为复杂算法的子过程。
2025-08-14 09:49:43
348
原创 选择排序专栏
本文全面解析选择排序算法,包括其工作原理、Java实现及优化方法。选择排序通过每次选择未排序部分的最小值并按顺序放置实现排序,时间复杂度始终为O(n²),空间复杂度为O(1)。文章详细展示了基础实现代码并提出了双向选择排序的优化方案,同时分析了该算法的稳定性、交换次数特点和适用场景,指出其适合小规模数据、内存有限或交换成本高的场景。虽然效率不高,但选择排序作为入门算法,有助于理解排序基本原理。
2025-08-13 23:44:58
488
原创 冒泡排序专栏
本文介绍了冒泡排序这一经典算法,从基本原理、实现步骤到优化方法进行了详细阐述。冒泡排序通过相邻元素比较交换实现排序,时间复杂度为O(n²),空间复杂度O(1)。文章通过具体示例演示了排序过程,并提供了两种优化方案:标志位检测和记录最后交换位置。虽然冒泡排序效率不高,但简单易懂,适合小规模数据排序和教学场景。最后强调应根据实际需求选择合适的排序算法。
2025-08-13 22:08:56
353
原创 一文拿下Spring Cache
SpringCache是Spring框架提供的缓存抽象层,通过注解简化缓存操作。核心注解包括@Cacheable(缓存查询)、@CacheEvict(清除缓存)和@CachePut(更新缓存)。使用需先启用@EnableCaching,并配置缓存管理器(如Redis)。相比手动操作RedisTemplate,SpringCache具有更低侵入性和更高开发效率,只需在方法上添加注解即可自动管理缓存,而无需编写手动判断和设置缓存的代码。它统一了不同缓存实现的调用方式,让开发者专注于业务逻辑而非缓存细节。
2025-08-12 11:48:59
267
原创 Java基础知识总结(超详细整理)
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了 C++里难以理解的多继承、 指针等概念,因此Java语言具有功能强大和简单易 用两个特征。Java语言作为静态面向对象编程语言的 代表,极好地实现了面向对 象理论,允许程序员以优雅的思维方式进行复杂的编程。所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上 运行。实现原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安 装相应的java虚拟机, 该系统就可以运行java程序。字节码。
2025-08-12 00:42:43
1117
原创 HttpClient入门
Apache HttpClient是一个Java HTTP客户端库,支持HTTP/1.1和HTTP/2协议,用于Web服务交互。核心组件包括HttpClient(管理连接)、HttpRequest(封装请求)、HttpResponse(封装响应)和RequestBuilder(构建请求)。使用流程:1)添加Maven依赖;2)创建HttpClient实例;3)构建请求对象(GET/POST等);4)执行请求获取响应;5)处理响应数据;6)关闭资源。支持高级配置如超时设置、请求头添加和异步请求(HttpAsy
2025-08-11 14:22:34
347
原创 java中的数组、集合
本文摘要:文章系统介绍了Java数组及集合框架的核心知识点。数组部分涵盖基本特性、初始化方式、多维数组和常见异常,重点比较了数组与集合的区别。集合部分详细解析了单列(Collection)和多列(Map)集合体系,包括List接口的ArrayList、LinkedList实现原理及线程安全替代方案,Set接口的HashSet、LinkedHashSet底层结构,以及Map接口下HashMap、LinkedHashMap、TreeMap等实现类的特性和应用场景。特别分析了HashMap的扩容机制、线程安全问题
2025-08-08 17:28:05
637
原创 Redis入门
Redis是一个高性能内存数据库,支持多种数据结构。摘要:Redis是基于内存的键值数据库,支持字符串、哈希、列表、集合和有序集合五种数据类型,提供丰富的操作命令。可通过客户端工具连接服务端进行操作,支持16个默认数据库。企业应用中需注意缓存击穿/雪崩问题,可通过哨兵模式(主从复制+自动故障转移)或集群模式(数据分片+高可用)确保稳定性。Java开发可通过Spring Data Redis操作,防范缓存穿透可采用参数校验、空对象缓存或布隆过滤器方案。
2025-08-06 15:06:58
722
原创 一文拿下Spring AOP
AOP(面向切面编程)是一种解耦横切关注点的编程范式。核心概念包括:切面(封装通用逻辑的类)、连接点(程序执行点)、切入点(筛选规则)和通知(拦截后执行的操作)。Spring AOP通过@Aspect标识切面类,@Pointcut定义拦截规则,配合5种通知注解(@Before、@After等)实现日志、权限、事务等功能的模块化管理。典型应用场景包括方法调用监控、通用字段填充等,通过动态代理在运行时织入业务逻辑,显著提升代码复用性和可维护性。
2025-08-05 15:02:57
976
原创 项目统一返回、全局异常处理
本文介绍了API开发中统一返回结构和全局异常处理的实现方案。通过设计包含code、message、data三个属性的统一响应结构,规范化前后端交互。采用@RestControllerAdvice注解实现全局异常拦截,针对业务异常、参数校验异常等不同类型进行差异化处理,并封装为统一格式返回。文章还提供了自定义业务异常类、前端交互示例和注意事项,建议生产环境区分开发/生产模式,使用枚举定义状态码。该方案可提升系统可维护性和前后端协作效率,适用于现代前后端分离架构。
2025-08-04 16:54:46
322
原创 拦截器和过滤器
过滤器是 Servlet 规范定义的组件,工作在请求进入 Servlet 容器之后,Servlet 处理之前,主要用于对请求和响应进行预处理和后处理。它可以修改请求内容、设置响应头、进行编码转换等,是 Java Web 中最底层的拦截机制。过滤器和拦截器作为 Web 开发中的重要组件,各自在不同层面解决问题。过滤器基于 Servlet 规范,适合处理与容器相关的通用功能;拦截器基于 Spring 框架,适合处理与业务相关的增强功能。
2025-08-03 22:52:23
545
原创 Cookie、Session、Token
本文系统解析了Cookie、Session和Token三种网络身份认证技术。Cookie作为客户端存储的小型文本文件,可实现基础状态保持但安全性不足;Session通过服务器端存储状态信息提升了安全性但增加了服务器负担;Token采用加密字符串实现无状态认证,兼具安全性和扩展性。三者演进体现了从依赖服务器存储到客户端证明的技术发展路径:Cookie提供基础存储载体,Session实现服务器记忆,Token则支持分布式认证。现代应用中,三种技术根据场景互补使用,其中Token因适应分布式架构和跨平台需求成为主
2025-08-03 20:39:34
505
原创 JWT令牌
JWT(JSON Web Token)是一种用于安全传输信息的数字签名令牌,由Header、Payload和Signature三部分组成。其核心功能是实现无状态的身份验证,用户登录后生成包含用户信息的JWT令牌,客户端存储并在后续请求中携带,服务器通过验证签名和有效期来确认身份。相比传统的Session-Cookie机制,JWT无需服务器存储会话信息,减轻了服务器压力。本文详细.阐述了交互流程。
2025-08-03 16:16:32
850
原创 数据结构与算法
本文系统介绍了数据结构与算法的基础知识,重点讲解了常见数据结构的实现原理和典型应用。内容涵盖线性结构(数组、链表、栈、队列)、非线性结构(二叉树、堆、图)以及哈希表等核心数据结构,详细分析了它们的时间/空间复杂度特性。文章还通过Java代码示例展示了动态数组、单链表、循环队列、二叉搜索树等数据结构的实现方法,并深入探讨了各类数据结构在算法设计中的应用场景,如DFS/BFS图遍历、堆排序、哈希查找等。
2025-07-31 19:21:43
657
原创 Nginx入门
Nginx是一款高性能的开源Web服务器和反向代理服务器,由俄罗斯工程师Igor Sysoev开发。它采用事件驱动架构,能够高效处理高并发连接,常用于HTTP服务、负载均衡、邮件代理等场景。与传统服务器如Apache相比,Nginx资源占用更低,适合现代高流量网站。Nginx支持模块化设计,可通过扩展模块增强功能,例如支持HTTP/2、gzip压缩、SSL/TLS加密等。其配置文件采用层级结构,语法简洁,便于管理。
2025-07-18 17:05:41
541
原创 SpringMVC的理解、原理及示例
摘要:SpringMVC是基于MVC模式的Web框架,核心为DispatcherServlet,通过HandlerMapping、Controller等组件处理请求。常用注解包括@RequestMapping(URL映射)、@RequestParam(参数绑定)、@RequestBody(JSON解析)等,特别适合RESTful API开发。RESTful是一种基于HTTP方法的架构风格,SpringMVC通过@RestController等注解实现RESTful服务,将HTTP方法与资源操作对应,例如GE
2025-07-18 14:49:01
522
原创 Spring Bean的生命周期(由浅到深5、7、10)
Spring Bean生命周期详解摘要:Spring Bean生命周期包含核心5步(实例化、属性赋值、初始化、使用、销毁),扩展为7步(加入BeanPostProcessor处理)和完整10步(增加Aware接口回调、注解处理)。通过XML配置和Java代码示例演示了不同阶段的执行顺序,包括@PostConstruct/@PreDestroy注解、InitializingBean/DisposableBean接口以及自定义init/destroy方法的使用。
2025-07-17 19:42:35
234
原创 mysql入门
这是一份持续更新的MySQL的学习笔记,记录了从入门的到进阶中的知识点,涵盖核心内容。后续会加入面试题的内容(大概60/70道)。由于笔者水平有限,笔记中难免会有疏漏或偏差,恳请指正。
2025-07-01 12:35:15
771
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人