自定义博客皮肤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)
  • 收藏
  • 关注

原创 Linux基本操作合集

本文系统整理了Linux常用命令,涵盖基础操作、文件管理、系统监控、网络诊断等核心功能。主要适合作为日常运维的快速参考手册。

2025-09-03 21:46:45 823

原创 框架每日一记问题总结(十二)

1. AOP 解耦横切关注点(日志/事务),基于代理模式。核心:切面(逻辑)、切入点(位置)、通知(行为)。2. @Autowired vs @Resource:@Autowired:Spring,按类型注入,名称注入需@Qualifier;@Resource:Java标准,按名称注入,支持name属性。3. TCP可靠传输。机制:序列号、确认应答、滑动窗口(实现连续传输+流量控制)。4.TCP连接管理:三次握手与四次挥手。5.拷贝:浅拷贝复制对象,共享引用成员;深拷贝递归复制,引用成员独立。

2025-08-03 10:36:59 691

原创 框架每日一记问题总结(十一)

1.基于Spring注解配置使用@Configuration、@Bean等注解替代XML配置,实现类型安全的依赖注入和组件管理。2.Spring访问Hibernate的两种方式。3.HibernateDaoSupport提供便捷的DAO开发方式,但现代开发更推荐使用JpaRepository或Spring Data JPA。4.Spring事务管理优势包括统一API、多资源支持、声明式配置和AOP集成,支持传播行为、隔离级别等灵活配置。5、AOP中连接点是程序执行点,切入点是筛选连接点的表达式规则。

2025-08-03 10:28:52 801

原创 框架每日一记问题总结(十)

讲述SpringMVC执行流程; MyBatis优势:支持灵活SQL编写,优化性能,简化ORM映射,适合复杂查询场景,便于调试和集成。 Bean工厂与ApplicationContext区别:ApplicationContext扩展了BeanFactory,提供更多功能(如国际化、事件机制),推荐企业级应用使用。Spring Bean作用域:包括Singleton(默认)、Prototype、Request、Session等,适应不同应用场景。Bean自动装配:通过类型、名称或注解自动注入依赖,减少配置。

2025-08-03 10:13:38 898

原创 框架每日一记问题总结(九)

Spring框架的事务管理提供了声明式(@Transactional)和编程式两种方式,支持多种传播行为和隔离级别,确保数据一致性。SSM架构具有解耦、灵活等优点,但存在学习曲线陡、性能开销等缺点,适合企业级应用开发。SpringMVC通过DispatcherServlet处理请求,核心流程包括请求拦截、控制器调用和视图渲染,相比Struts2更灵活现代。在Web应用中,可通过HttpSession的setAttribute()方法存储会话数据,但需注意安全性和生命周期管理。

2025-08-03 10:09:12 642

原创 框架每日一记问题总结(八)

MyBatis映射文件中,<sql>标签可定义在引用它的<include>标签之后,因为MyBatis会完整解析整个XML文件后再处理引用关系。动态SQL通过<if>、<choose>;<foreach>等标签实现条件拼接。MyBatis提供4种执行器。作为半自动ORM工具,MyBatis需要手动编写SQL和映射关系,相比全自动ORM(如Hibernate)具有更高的SQL控制灵活性。MyBatis通过封装JDBC简化数据库操作,适合需要精细控制SQL性能的场景。

2025-08-03 10:03:14 792

原创 框架每日一记问题总结(七)

SpringMVC是基于MVC模式的Web框架,通过DispatcherServlet统一管理请求,支持多种视图技术和数据绑定。MyBatis支持延迟加载(通过动态代理)和关联查询(一对一、一对多),提供ResultMap和嵌套查询两种实现方式。MyBatis插件通过实现Interceptor接口扩展功能,可拦截核心执行点。SQL结果集通过ResultMap或自动映射转换为Java对象,支持基本映射、嵌套映射和注解映射。

2025-08-03 09:51:53 1136

原创 框架每日一记问题总结(六)

MyBatis工作流程包括加载配置、创建SqlSessionFactory、执行SQL操作及结果映射等环节。它通过接口绑定实现类型安全的SQL调用,简化开发流程。相比JDBC,MyBatis解决了资源管理、SQL注入等问题,提供自动对象映射。其优点包括灵活性高、支持动态SQL和缓存机制,但存在配置繁琐、复杂关联支持有限等缺点。完整的开发步骤涵盖环境配置、Mapper定义、事务处理等,显著提升了数据库操作效率。

2025-07-25 22:30:12 941

原创 框架每日一记问题总结(五)

SpringMVC核心组件包括DispatcherServlet、HandlerMapping等,实现了请求处理流程;与AJAX结合通过@RestController返回JSON数据。MyBatis自定义TypeHandler用于特殊类型转换,适用于复杂数据类型映射。MyBatis缓存机制含一级缓存(SqlSession)和二级缓存(Mapper)。SpringMVC相比Struts2设计更轻量,配置灵活,集成性好,是现代Web开发主流框架。

2025-07-25 22:10:00 1095

原创 框架每日一记问题总结(四)

Spring通过无状态设计和作用域管理确保Controller并发安全,依赖注入推荐构造器注入保障对象完整性,支持多种集合注入方式。事务管理提供声明式和编程式两种模式,支持传播行为和隔离级别配置,具有统一API、配置简洁等优势,能有效降低事务处理复杂度。

2025-07-25 22:07:47 1049

原创 框架每日一记问题总结(三)

Spring框架的核心特性包括:BeanFactory与ApplicationContext的区别(延迟加载vs预加载),Bean生命周期(实例化、属性填充、初始化、销毁等阶段),支持多种作用域(singleton、prototype等)。主要优势在于依赖注入解耦、AOP支持、声明式事务及丰富的集成能力。内部运用了工厂模式、单例模式、代理模式等多种设计模式,为现代应用开发提供了强大支持。

2025-07-25 21:50:40 423

原创 框架每日一记问题总结(二)

本文梳理了Java Web开发中的核心技术点。SpringMVC采用前端控制器模式,通过DispatcherServlet实现请求分发,具有松耦合、RESTful支持等优势。Spring事务管理包括编程式(灵活但代码冗余)和声明式(简洁但粒度粗)两种方式。MyBatis中#与$的区别在于预处理和字符串拼接,动态SQL通过条件标签解决复杂查询问题。Shiro框架的认证流程包含凭证提交、Realm验证等步骤,授权流程则通过权限判定实现资源保护。这些技术共同构成了现代Java Web开发的核心技术栈。

2025-07-25 21:35:41 475

原创 框架每日一记问题总结(一)

Spring框架的核心机制包括:Spring Bean容器负责管理对象的创建、配置和生命周期,而Spring IOC容器则是实现控制反转思想的具体载体。IOC通过将对象的创建和管理交给容器,实现解耦,其实现方式包括依赖注入(DI),可通过注解或配置完成。Spring支持多种对象作用域(@Scope)和延迟加载(@Lazy)配置。底层通过反射机制构建Bean,并处理依赖注入和生命周期方法。需注意资源释放以避免内存泄漏,即不再使用的对象因引用未解除而持续占用内存。

2025-07-25 21:23:50 704

原创 Java每日一记问题总结(六)

1)堆排序时间复杂度为O(nlogn),空间复杂度O(1);2)哈夫曼编码通过频率统计和最优树构建实现压缩存储;3)CPU高速缓存提升速度但成本高且维护复杂;4)线程安全类如Vector和ConcurrentHashMap的实现;5)LRU算法使用双向链表和哈希表淘汰最久未用缓存。这些内容涉及算法复杂度、数据压缩、计算机体系结构和并发编程等核心概念。

2025-07-25 21:08:26 949

原创 Java每日一记问题总结(五)

instanceof用于对象类型判断,确保类型转换安全;基本类型转换需注意精度损失,引用类型转换需遵循继承关系;重入锁(ReentrantLock)支持线程重复获取同一锁,避免死锁;指令重排序可提升性能但需注意多线程安全问题;Arrays.sort()针对不同数据类型采用优化算法,如双轴快速排序和TimSort,Java8+还支持并行排序。这些特性共同构成了Java高效、安全编程的基础。

2025-07-25 21:03:50 590

原创 Java每日一记问题总结(四)

本文解析了JVM本地方法栈的作用,用于执行本地方法和管理JNI调用;介绍了双亲委派机制确保类加载安全和核心类唯一性;比较了方法重写(子类覆盖父类方法)与重载(同类同名不同参数)的区别;阐述了子类构造方法必须调用父类构造方法的规则;最后说明子类实例化会触发父类初始化,遵循父类字段→父类构造→子类字段→子类构造的顺序。这些机制共同保障了Java程序的正确性和安全性。

2025-07-25 20:55:06 986

原创 Java每日一记问题总结(三)

Java核心知识点包括:1)反射机制通过Class对象获取类信息,包括字段、方法和构造方法;2)代理模式分为静态代理和动态代理(JDK/CGLIB),用于日志增强和权限控制;3)equals()方法需重写以保证比较逻辑正确性,并遵守对称性等原则;4)Java采用值传递,传递的是对象引用的副本;5)类初始化顺序遵循静态优先、父类优先原则,继承时先初始化父类再子类。这些知识点对理解Java运行机制和编写高质量代码至关重要。

2025-07-25 20:48:41 500

原创 Java每日一记问题总结(二)

本文摘要了Java字符串处理、HTTP协议和异常管理的核心知识点。String类提供length()、substring()等常用方法,其不可变性带来安全性和性能优势。StringBuffer和StringBuilder支持可变字符串操作,前者线程安全后者性能更优。HTTP协议包含Host、User-Agent等请求头字段。Java异常分为编译时异常、运行时异常和错误,通过try-catch或throws进行管理。这些知识点涵盖了字符串处理、网络通信和错误处理的关键技术要点。

2025-07-25 20:42:45 666

原创 Java每日一记问题总结(一)

计算机网络传输层协议中,TCP适用于需要可靠传输的场景(如网页浏览、文件传输),UDP适用于实时性要求高的场景(如在线视频、游戏)。多线程适用于高并发、耗时操作等场景,线程数应根据CPU核心数和任务类型(I/O密集型或CPU密集型)合理设置。线程池提供多种任务提交方式(如execute、submit),适用于不同需求。锁的实现依赖于操作系统原语和硬件支持,如自旋锁、互斥锁等。TCP的拥塞控制通过动态调节发送速率(如慢启动、拥塞避免)避免网络过载,确保传输效率和稳定性。

2025-07-25 20:37:57 705

原创 Spring常用注解讲解笔记

Spring框架提供多种注解简化开发:核心注解包括@Component(通用组件)、@Controller(Web层)、@Service(业务层)、@Repository(DAO层);依赖注入相关注解如@Autowired(自动装配)、@Qualifier(指定Bean)、@Value(配置注入);生命周期管理注解@PostConstruct/@PreDestroy;功能启用类注解@EnableXXX。这些注解覆盖了组件注册、依赖管理、配置加载等核心功能,大幅减少了XML配置需求。

2025-07-13 16:45:08 301

原创 AOP(面向切面编程)学习笔记

AOP(面向切面编程)是一种将横切关注点(如日志、安全、事务等)从核心业务逻辑中分离的技术。核心概念包括目标对象、切面、连接点、切点和通知(5种类型)。实现机制主要依赖动态代理(JDK/CGLIB)和代码织入(编译时/加载时/运行时)。Spring AOP采用动态代理,AspectJ功能更强大。典型应用场景包括日志记录、性能监控和事务管理。优势在于模块化和代码复用,但需注意性能开销和调试复杂度。合理使用AOP能提升代码可维护性,需避免过度使用导致切面泛滥。

2025-07-13 16:38:30 988

原创 Spring Boot 框架简介

SpringBoot是一款基于Spring框架的简化开发平台,旨在快速构建独立、可执行的应用程序。其核心特点包括自动配置、起步依赖和内嵌服务器,通过"约定优于配置"原则大幅简化开发流程。SpringBoot提供丰富的starter依赖,支持一键式集成Web、JPA、安全等功能,并内置Actuator监控系统。开发流程简单:创建项目、添加依赖、编写业务代码、配置运行即可。优势在于减少样板代码、便于测试和容器化部署,是现代微服务开发的重要基础框架。

2025-07-13 16:24:41 354

原创 SpringMVC 详细学习笔记

SpringMVC是Spring框架的Web模块,采用前端控制器(DispatcherServlet)实现请求调度。通过@Controller和@RequestMapping注解映射请求,支持参数绑定、路径变量及RESTful开发。请求经过HandlerMapping找到对应Controller,执行业务逻辑后返回模型和视图或数据。支持多种视图(JSP、Thymeleaf等)渲染,具备异常处理和验证功能。配置灵活,可通过XML或Java代码实现视图解析和扩展,适合构建高效、解耦的企业级Web应用。

2025-07-13 16:17:33 575

原创 Spring框架详细学习笔记

Spring框架是一个轻量级开源的企业级Java开发框架,通过依赖注入(DI)和面向切面编程(AOP)等核心技术实现解耦。核心模块包括IoC容器、事务管理、JDBC/ORM集成、Web开发等。提供XML、注解和Java三种配置方式,支持声明式事务和Spring MVC开发。常用注解如@Component、@Autowired、@Transactional等简化开发。Spring还集成了事件机制、定时任务、缓存等功能,并衍生出Spring Boot等生态项目,是现代Java开发的主流框架之一。

2025-07-13 16:13:53 841

原创 MyBatis增删改查(CRUD)操作详细笔记

本文详细介绍了MyBatis的CRUD操作全流程,包括准备工作(配置文件/映射文件/Mapper接口/实体类)和具体实现方法。重点解析了Insert(主键回填配置)、Select(单条/批量/条件查询)、Update和Delete操作的XML映射写法、Mapper接口定义及调用方式,并强调了事务管理(需手动commit)和注意事项(如参数传递、事务封装等)。通过完整示例展示了从数据插入到删除的连贯操作,为MyBatis基础数据库操作提供了实用指南。

2025-07-13 16:09:38 313

原创 MyBatis 知识笔记

MyBatis是一款轻量级数据持久层框架,通过XML或注解配置SQL语句,简化JDBC操作。核心特性包括SQL映射、动态SQL生成、对象关系映射和两级缓存机制。使用流程包括配置数据源、定义映射文件、创建Mapper接口和执行SQL操作。其优势在于配置灵活、SQL可控,但需手动编写SQL。常用扩展如MyBatis-Plus可增强CRUD功能。适用于需要精细控制SQL的场景,是传统JDBC和全自动ORM框架之间的折中选择。

2025-07-13 16:03:48 401

原创 MySQL事务总结笔记

事务是数据库操作的逻辑单元,确保数据完整性和一致性。具有ACID四大特性:原子性、一致性、隔离性和持久性。MySQL通过InnoDB引擎支持事务,提供BEGIN、COMMIT、ROLLBACK等操作命令,并设置四种隔离级别控制并发访问。为保障隔离性采用锁机制,包括共享锁和排他锁。使用事务需注意避免长事务、合理选择隔离级别、优化锁策略和及时处理错误。典型事务包含更新操作和提交/回滚机制,常见问题如死锁可通过优化锁范围和顺序解决。

2025-07-13 15:47:38 317

原创 Redis分布式锁全面笔记

Redis分布式锁的设计核心在于确保互斥性、原子性、自动释放和容错性。关键技术包括:使用SETNX命令和Lua脚本实现原子操作;通过过期时间+看门狗机制实现自动续期;利用Redis哈希结构支持可重入锁。难点在于处理主从架构锁丢失问题,RedLock算法通过多节点半数确认提升可靠性。Redisson优化方案支持公平锁、读写锁等高级特性。设计需避免线程ID冲突、GC暂停等陷阱,合理设置超时和唯一标识。实现需平衡性能与可靠性,多节点方案虽提升容错性但增加复杂度。

2025-07-13 15:42:13 822

原创 Java并发编程核心知识点笔记

本文整理了Java并发编程的核心知识点:1)区分并发与并行概念;2)线程创建方式及生命周期;3)线程同步与死锁问题;4)线程间通信机制;5)线程安全与共享数据保护;6)JUC包中的实用工具类;7)常见并发设计模式;8)volatile关键字特性;9)原子类操作;10)线程安全容器;11)高级特性如CompletableFuture;12)性能优化建议;13)常见问题与面试重点。内容涵盖基础概念到高级应用,为开发者提供系统的并发编程知识框架。

2025-07-13 15:38:37 400

原创 Java反射机制全面笔试指南

Java反射机制允许程序在运行时动态获取类信息并操作类成员(包括私有成员)。核心功能包括:类信息获取(Class对象)、实例化(Constructor)、字段操作(Field)、方法调用(Method)和泛型解析。反射可突破访问限制(通过setAccessible),但需注意性能损耗(建议缓存反射对象)和安全管理(限制敏感包访问)。典型应用包括动态代理、单例防护(构造器校验)和工具类开发。使用时应遵循规范:优先常规方案、集中管理反射操作、正确处理异常。反射虽强大,但应避免滥用。

2025-07-13 15:35:25 897

原创 Java多态知识点整理笔记

本文深入讲解了Java多态机制、数据类型与内存管理、集合框架原理等核心知识点。重点包括:1)多态的实现原理(动态绑定)及内存布局;2)基本数据类型和引用类型的内存存储差异;3)ArrayList/LinkedList/HashSet等集合类的底层实现与特性对比;4)典型面试题解析(如方法调用、集合操作等)。关键总结:多态需满足继承、重写和向上转型;集合选择取决于使用场景;对象相等需同时重写equals()和hashCode();基本类型值存栈,引用类型地址存栈、对象存堆。

2025-07-13 15:30:05 699

原创 熟悉并实现简单的手写Tomcat

本文介绍了手写简化版Tomcat的核心实现过程。主要包括:1)通过ServerSocket监听端口,处理HTTP请求;2)解析请求行、请求头和请求体;3)路由匹配Servlet并调用其service方法;4)封装HTTP响应返回客户端。关键组件包括Server、Request、Response和Servlet容器,核心流程涉及TCP连接、HTTP协议解析和Servlet调用。文章还提供了简化版代码示例,并指出多线程处理、Servlet管理等优化方向。

2025-07-13 15:18:53 279

原创 数据结构——链表

通过提供的LinkList类和其相关方法,我们可以灵活地进行节点的增、删、查等操作。链表因其动态的特性及高效的插入、删除能力,非常适用于需要频繁修改数据的数据处理场景。然而,由于链表的每个节点都需要额外维护一个指针,较传统数组而言,对于随机访问的性能较差。因此,选择链表作为数据结构时需要根据具体场景权衡利弊。

2025-03-27 10:51:42 734

原创 数据结构——队列

队列作为一种基础数据结构,具有直观的操作和广泛的应用场景。通过对实施代码的分析,我们可以理解队列的基本操作及其实现细节,并意识到其在程序设计中的重要性。队列的使用能够帮助开发者有效管理和处理数据流、任务和事件。

2025-03-27 10:43:46 513

原创 数据结构——栈

栈作为一种基础数据结构,具有直观的使用方式和广泛的应用领域。通过对上述代码的分析,我们可以理解栈的基本操作及其实现细节,并意识到其在程序设计中的重要作用。

2025-03-27 10:40:25 474

原创 数据结构——八大排序总结分析

选择排序算法时,可以根据数据规模、数据特征(如已排序程度、数据类型)、空间限制等来决定使用哪种算法。对于小规模数据,简单的排序如插入排序或冒泡排序往往足够;而对于大规模数据,合并排序或快速排序则更为高效。同时,空间复杂性也是需要考虑的重要因素。

2025-03-27 10:35:36 388

原创 数据结构——八大排序之选择排序

选择排序是一种简单的排序算法,尽管它的性能相对较低(特别对于大规模数据),但其实现简单,适合教育和小数据集的场景。选择排序不稳定,由于相同元素在排序后可能会改变顺序。

2025-03-26 23:38:12 207

原创 数据结构——八大排序之基数排序

基数排序是一种高效且线性的排序算法,适用于大规模整数的排序。由于它不依赖于比较,故在合适的条件下能展现出优良的性能。在实际应用中,特别适合处理范围有限的数字。

2025-03-26 23:32:00 353

原创 数据结构——八大排序之快速排序

快速排序是一种高效的排序算法,尤其适用于大规模数据的排序。它通过选择基准并划分数组,能有效地实现排序。由于其良好的性能和简洁的分治思想,快速排序在实际应用中非常广泛。

2025-03-26 23:27:29 346

原创 数据结构——八大排序之归并排序

归并排序是一种稳定且高效的排序算法,尤其适用于大规模数据的排序。它利用分治法,将复杂的排序问题归结为多个简单问题,逐步进行解决。这样的方法在很多实际应用中具有很好的性能。

2025-03-26 23:23:47 374

空空如也

空空如也

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

TA关注的人

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