- 博客(98)
- 收藏
- 关注
原创 OSI七层网络结构和TCP/IP四层结构
OSI(Open Systems Interconnection)七层网络模型是一个理论上的框架,用于理解和设计网络体系结构。TCP/IP模型比OSI模型更为简洁实用,它去掉了会话层和表示层,将它们的功能合并到应用层中。HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)IP(互联网协议)、ICMP(互联网控制消息协议)IP(互联网协议)、ICMP(互联网控制消息协议)TCP(传输控制协议)、UDP(用户数据报协议)TCP(传输控制协议)、UDP(用户数据报协议)
2025-03-05 15:20:53
598
原创 SpringMVC的执行流程
用户发送请求至前端控制器DispatcherServlet。DispatcherServlet请求HandlerMapping查找Handler(可以根据xml配置、注解进行查找)。HandlerMapping向DispatcherServlet返回Handler。DispatcherServlet调用HandlerAdapter执行Handler。HandlerAdapter执行Handler,并返回ModelAndView。
2025-02-25 19:21:49
485
原创 Spring框架支持的bean作用域
在整个Spring IoC容器中,一个Bean定义对应一个唯一的实例。每次请求Bean时,Spring容器都会创建一个新的Bean实例。在单个HTTP请求的生命周期内,一个Bean定义对应一个唯一的实例。在HTTP会话的生命周期内,一个Bean定义对应一个唯一的实例。在ServletContext的生命周期内,一个Bean定义对应一个唯一的实例。除了内置的作用域,Spring还允许开发者通过实现Scope接口来自定义作用域。
2025-02-14 17:24:30
405
原创 Spring框架核心之IoC
容器读取配置元数据,并将这些信息转换为内部结构(BeanDefinition)。定义应用程序中的Bean以及它们之间的依赖关系。
2025-02-10 17:07:33
700
原创 什么是依赖注入DI?
依赖注入是一种将依赖关系的管理从类内部转移到类外部的方法。这意味着,类不再负责创建它们所依赖的对象,而是由外部系统(通常是框架或容器)在运行时提供这些依赖。
2025-02-08 13:59:13
363
原创 雪花算法是什么?
雪花算法因其简单、高效、可靠的特点,在分布式系统中生成唯一标识符方面得到了广泛的应用。它能够满足高并发场景下的性能需求,同时保证了ID的唯一性和有序性。
2025-02-07 12:43:05
362
原创 RabbitMQ是什么?
RabbitMQ是一个强大的消息队列系统,它通过提供可靠的消息传递、灵活的路由和丰富的特性,帮助开发者构建可扩展、可维护的分布式系统。由于其稳定性和易用性,RabbitMQ在许多不同的应用场景中都得到了广泛的应用。
2025-02-07 12:21:42
623
原创 Happens-Before是什么?
"Happens-Before"关系定义了两个操作之间的偏序关系,如果操作A "happens-before" 操作B,那么操作A的结果对操作B可见,也就是说,操作B可以看到操作A的效果。"Happens-Before"是理解和设计并发和分布式系统的一个重要概念。它提供了一种形式化的方法来描述操作之间的可见性和顺序关系,从而帮助开发者构建正确的并发程序。在Java等编程语言中,"Happens-Before"规则被用来保证内存操作的顺序性和可见性,是并发编程的基础之一。
2025-02-07 11:10:48
729
原创 什么是ZooKeeper?
ZooKeeper是一个用于构建分布式应用的强大工具,它通过提供协调服务来简化分布式系统中的复杂问题。由于其高可用性、一致性和可靠性,ZooKeeper被广泛用于各种分布式系统和大数据技术中,如Hadoop、HBase和Kafka。ZooKeeper的设计使其成为处理分布式协调问题的首选解决方案之一。
2025-02-07 09:45:30
609
原创 什么是Kafka?
Kafka是一个强大的、可扩展的、高吞吐量的数据流平台,适用于构建高性能的数据处理管道和实时分析系统。它的设计考虑了易用性、可伸缩性和容错性,使其成为处理大规模数据流的首选平台之一。Kafka在许多大型企业中都有广泛的应用,包括Netflix、Twitter、LinkedIn等。
2025-02-07 09:26:35
1092
原创 什么是Netty?
Netty因其高性能、易用性和可靠性,在Java网络编程领域有着广泛的应用。它是许多知名框架和中间件底层的网络通信组件,如Apache Kafka、RocketMQ、Dubbo等。对于需要高性能网络通信的开发者来说,Netty是一个非常好的选择。
2025-02-07 09:03:26
403
原创 最左前缀匹配原则
最左前缀匹配原则指的是,在多列索引中,查询条件必须从索引的最左边的列开始匹配,才能有效地使用该索引。这意味着,只有当查询条件中包含索引最左边的列时,索引才会被数据库查询优化器考虑使用。
2025-01-14 17:22:05
661
原创 什么是索引下推
是MySQL 5.6版本引入的一个查询优化技术。它可以在某些情况下提高查询性能,尤其是在使用复合索引进行查询时。在解释索引下推之前,我们先了解一下在没有索引下推的情况下,MySQL是如何使用索引进行查询的。
2025-01-13 21:05:44
306
原创 MyISAM介绍
MyISAM是MySQL数据库中的,它在MySQL 5.5及之前的版本中是默认的存储引擎。MyISAM以其高速读取和全文搜索的能力而闻名,但它在某些方面与InnoDB等其他存储引擎相比有所不足。
2025-01-11 14:54:12
293
原创 MySQL的三大日志
Undo Log 是用于事务回滚的日志,它记录了事务发生之前的数据状态,用于在事务执行失败或用户执行ROLLBACK时,将数据恢复到事务开始前的状态。Redo Log 是一种用于保证事务持久性的日志,它记录了事务对数据所做的修改。在系统崩溃恢复时,Redo Log 用来恢复尚未写入磁盘的数据。Binlog 是MySQL数据库的另一种日志,它记录了数据库的所有更改操作,包括数据修改和数据库结构变更。Binlog主要用于数据备份、恢复和主从复制。Undo Log:用于事务回滚和MVCC,记录。
2025-01-06 16:54:53
282
原创 Java的值传递
基本数据类型传递的是值的副本,方法内部对副本的操作不会影响原始变量。引用数据类型传递的是引用的副本,但这个副本和原始引用指向同一个对象,因此方法内部对对象的操作会影响原始引用所指向的对象。这就是Java中的值传递机制。需要注意的是,尽管引用类型的传递看起来像是“传递引用”,但实际上传递的仍然是引用的一个副本,这符合值传递的定义。
2025-01-03 17:16:13
376
原创 StringBuffer和StringBuilder的区别
选择还是主要取决于你的应用场景。如果你在多线程环境中操作字符串,或者你不确定你的代码是否会在多线程环境中运行,那么应该选择StringBuffer。然而,如果你可以保证字符串操作是在单线程环境中进行的,那么选择StringBuilder将会带来更好的性能。在Java 5之后,StringBuilder通常是构建字符串的首选,因为它在大多数情况下都更高效。
2025-01-02 09:03:16
410
原创 Java常用包
Java 的标准库包含了许多包(package),每个包都包含了一系列相关的类和接口,用于处理不同的任务。以下是一些常用的 Java 包及其简要介绍:核心包:不需要显式导入,默认就包含在所有的 Java 程序中。功能:提供了构成 Java 编程语言核心的类,如 Object, String, Math, 基本数据类型的包装类(如 Integer, Double),以及线程管理(Thread)等。功能:包含集合框架、事件模型、日期和时间设施、国际化和各种实用工具类。重要类/接口:List, Set, Map,
2024-12-30 17:02:42
545
原创 IBatis与MyBatis的区别
MyBatis 可以看作是 iBatis 的一个全面升级版,它保留了 iBatis 的核心思想,同时在配置、动态 SQL、性能、插件系统等方面进行了大量的改进和增强。MyBatis 的目标是简化数据库操作,提高开发效率,同时保持足够的灵活性和扩展性。因此,对于新的项目,推荐使用 MyBatis 而不是 iBatis。
2024-12-25 17:06:33
659
原创 什么是MVCC?
MVCC是一种强大的数据库并发控制技术,它通过提供数据的多版本视图,使得数据库能够支持高并发访问,同时保持事务的一致性和隔离性。虽然实现MVCC的系统可能会面临一些挑战,但它在提高数据库性能和用户体验方面发挥了重要作用。
2024-12-24 20:15:32
624
原创 SQL优化中的关键字explain
range:范围查询,通常出现在WHERE子句中带有BETWEEN、<、>等操作符。通过以上方法,我们可以有效地优化SQL查询,提高数据库性能。如果id相同,则从上往下顺序执行;如果id不同,则id值越大,优先级越高。eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。通过分析这些信息,我们可以优化SQL查询,提高查询效率。:根据Extra列,优化查询,减少临时表和文件排序的使用。ref:非唯一性索引扫描,返回匹配某个单独值的所有行。SIMPLE:简单查询,不包含子查询或UNION。
2024-12-20 16:21:15
335
原创 MyBatis的常用节点(标签)
MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。MyBatis 的配置文件(通常是 mybatis-config.xml)和映射文件(通常是 XxxMapper.xml)中使用了多种标签来配置和定义 SQL 语句及其映射规则。
2024-12-19 23:35:43
334
原创 MyBatis接口绑定的实现方式
从而实现接口绑定。实现步骤:在 Mapper 接口的方法上使用 MyBatis 提供的注解,如 @Select、@Insert、@Update、@Delete。在 MyBatis 配置文件中注册 Mapper 接口所在的包路径。
2024-12-18 23:51:20
305
原创 什么是MyBatis?
MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
2024-12-17 20:22:58
599
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人