- 博客(59)
- 收藏
- 关注
原创 Spring MVC 核心枢纽:DispatcherServlet 的深度解析与实践价值
在这个强大的框架体系中,DispatcherServlet 无疑是最为关键的中枢神经,掌控着整个请求处理流程的命脉。本文将深入探究 DispatcherServlet 的工作原理、核心职责及其在 Spring MVC 应用中不可替代的重要作用,帮助开发者更透彻地理解这一核心组件,从而更高效地运用 Spring MVC 框架开发出高质量的 Web 应用。
2025-06-10 16:51:27
484
原创 Java线程池
在现代Java应用程序中,线程池(ThreadPool)是一种非常重要的并发工具,它允许开发者以高效、可控的方式管理并发执行的任务。
2025-06-08 17:53:31
501
原创 Java并发编程面试题
进程是程序的一次执行过程,是系统运行程序的基本单位。一个进程在其执行的过程中可以产生多个线程。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的独立运行的单位。线程与进程相似,但线程共享进程的堆和方法区资源,而每个线程有自己的程序计数器、虚拟机栈和本地方法栈。同一时间段内,多个任务都在执行(单位时间内不一定同时执行)。在单核CPU上,多线程主要通过时间片轮转实现并发;在多核CPU上,多线程可以实现真正的并行。
2025-06-06 19:04:08
893
原创 线程安全的集合类和并发数据结构
Java提供了多种线程安全的集合类和并发数据结构,以满足不同场景下的并发需求。在选择合适的集合或数据结构时,需要根据实际的应用场景(如读写比例、并发量、是否需要阻塞等)来综合考虑。
2025-06-06 19:03:37
391
原创 Mybatis中的懒加载
懒加载(Lazy Loading)是 MyBatis 提供的一种优化数据加载的策略,它可以在需要时才加载关联数据,而不是在查询主对象时就立即加载所有关联数据。
2025-05-29 14:15:48
1180
原创 Mybatis中的两个动态SQL标签
在Mybatis中,<trim> and <set>都是动态SQL标签,用于处理更新操作中的条件拼接。以下是它们的区别和适用场景:
2025-05-26 18:21:30
429
原创 IntelliJ IDEA --- 快捷键大全
IntelliJ IDEA 是一款强大的 Java 集成开发环境(IDE),它提供了丰富的快捷键来帮助开发者提高编码效率和舒适度。本文将为你详细介绍 IntelliJ IDEA 中的常用快捷键,帮助你更好地利用这款开发工具。
2025-05-26 18:00:24
1181
原创 初识Mybatis
在文献中看到的framework被翻译为框架Java常用框架SSM三大框架:Spring + SpringMVC + Mybatis SpringBoot等、
2025-05-26 17:51:19
608
原创 手写简单的tomcat
首先,Tomcat是一个软件,所有的项目都能在Tomcat上加载运行,Tomcat最核心的就是Servlet集合,本身就是HashMap。Tomcat需要支持Servlet,所以有servlet底层的资源:HttpServlet抽象类、HttpRequest和HttpResponse,否则我们无法新建Servlet。
2025-05-22 21:51:21
1044
原创 Java中的异常机制
在理想状态下,用户输入数据的格式永远都是正确的,选择打开的文件也一定存在,并且永远不会出现bug。然而,在现实世界中却充满了不良的数据和带有问题的代码,现在是讨论Java程序设计语言处理这些问题的机制的时候了。
2025-05-15 00:13:36
551
原创 Java三大基本特征之多态
多态(Polymorphism)是面向对象编程(OOP)的三大特性之一(另外两个是 封装 和 继承),它允许 同一个行为具有不同的表现形式。在 Java 中,多态主要通过 方法重写(Override) 和 接口/抽象类 实现。
2025-05-08 22:48:38
954
原创 事务(transaction)-下
针对快照读(普通 select 语句),是通过 MVCC 方式解决了幻读。针对当前读(select ... for update 等语句),是通过 next-key lock(记录锁+间隙锁)方式解决了幻读。我举例了两个发生幻读场景的例子。第一个例子:对于快照读, MVCC 并不能完全避免幻读现象。因为当事务 A 更新了一条事务 B 插入的记录,那么事务 A 前后两次查询的记录条目就不一样了,所以就发生幻读。
2025-05-08 12:27:50
863
原创 事务(transaction)-中
A事务与B事务,A事务可以读取到B事务未提交的数据。这是最低的隔离级别。几乎两个事务之间没有隔离。这种隔离级别是一种理论层面的,在实际的数据库产品中,没有从这个级别起步的。当事务隔离级别是读未提交时,三种现象都存在:脏读,不可重复读,幻读。我们可以开启两个DOS命令窗口,模拟两个事务,演示一下这种隔离级别。三种现象中最严重的是脏读,我们只需要演示脏读问题即可,因为存在脏读的话,就一定存在不可重复读和幻读问题。将全局事务隔离级别设置为:READ UNCOMMITTED。
2025-05-08 12:18:50
1035
原创 事务(transaction)-上
食物是一个最小的工作单元。在数据库当中,事务表示一件完整的事儿。一个业务的完成可能需要多条DML语句共同配合才能完成,例如转账业务,需要执行两条DML语句,先更新张三账户的余额,再更新李四账户的余额,为了保证转账业务不出现问题,就必须保证要么同时成功,要么同时失败,怎么保证同时成功或者同时失败呢?就需要使用事务机制。也就是说用了事务机制之后,在同一个事物当中,多条DML语句会同时成功,或者同时失败,不会出现一部分成功,一部分失败的现象。
2025-05-06 22:08:22
570
原创 Java使用JDBC操作数据库
3.在pom文件中加上相关依赖,并配置Maven路径。2.使用idea新建一个Java项目。然后运行,就可以从数据库中读取数据了。新建jdbcdemo包和其中的类。1.创建一个数据库一会用来连接。
2025-05-05 16:26:51
283
原创 什么是JDBC
JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。
2025-05-04 16:24:51
917
原创 Maven的继承
Maven 的依赖传递机制可以一定程度上简化 POM 的配置,但这仅限于存在依赖关系的项目或模块中。当一个项目的多个模块都依赖于相同 jar 包的相同版本,且这些模块之间不存在依赖关系,这就导致同一个依赖需要在多个模块中重复声明,这显然是不可取的,大量的前人经验告诉我们,重复往往意味着更多的劳动和更高的潜在风险。在 Java 面向对象中,我们可以建立一种类的父子结构,然后在父类中声明一些字段和方法供子类继承,这样就可以一定程度上消除重复,做到 “一处声明,多处使用”。
2025-04-30 08:00:00
316
原创 Maven中的依赖管理
Maven的依赖构件包含一个依赖范围的属性。这个属性描述的是三套classpath的控制,即编译、测试、运行。这说白了就是添加的jar包起作用的范围。maven提供了以下几种依赖范围:compile,test,provided.runtime,system。compile:编译依赖范围,如果没有指定,默认使用该依赖范围,对于编译、测试、运行3种classpath都有效。
2025-04-29 21:13:52
874
原创 Java中的过滤器
过滤器是 Java Web 的“守门员”,适合处理与业务无关的横切关注点(如安全、日志)。优先使用注解配置,简化开发。复杂场景可组合多个过滤器(通过调整web.xml中的顺序控制执行顺序)。如果需要更精细的控制(如依赖 Spring 的 Bean),可以考虑 Spring 拦截器(HandlerInterceptor)。
2025-04-28 22:31:30
268
原创 Maven的核心概念
会有预先约定好的目录结构,必须要遵循的规范,所有的Maven项目都依照这个规范。主要的目的是将项目的源码文件,测试代码,资源文件完全分开,便于项目管理和扩展。也称为gav定位。使用三个标签来唯一定位jar资源。项目的唯一的名称,创建项目时定义gav名称,引用项目时使用gav名称。相当于项目的身份证号。groupId: 组织名称,一般是公司域名的倒写 com.bjpowernodeartifactId: 项目名称 springmvc_006_ssm。
2025-04-25 09:25:56
525
原创 什么是Maven
对jar包的统一管理,Maven提供中央仓库,私服,本地仓库解决jar包的依赖和相关依赖的下载。构建(build)是面向过程的(从开始到结尾的多个步骤),涉及到多个环节的协同工作。如下图所示:包括蓝、黄两个部分分别对应着依赖关系和项目构建两大核心功能。类似自动化构建工具还有:Gant,Gradle。总之,Maven是项目开发必不可少的工具。对项目进行编译,测试,打包,部署等构建。
2025-04-24 23:46:23
550
原创 MySQL中的视图
MySQL中的视图是一种虚拟表,它是基于一个或多个查询的结果集构建的,可以像表一样被查询和操作。视图本身并不存储数据,而是根据定义的查询语句在查询时生成结果。使用视图可以简化复杂查询、提高查询效率、保护数据安全性以及提供用户对特定数据的访问权限控制。
2025-04-24 08:00:00
212
原创 约束constraint
创建表时,可以给表的字段添加约束,可以保证数据的完整性、有效性。比如大家上网注册用户时常见的:用户名不能为空。对不起,用户名已存在。等提示信息。
2025-04-23 18:32:16
896
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人