自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试官常问问题,JDBC的Statement与MyBatis的Statement

是Java用于连接和操作数据库的标准API。Statement是JDBC中的一个接口,用于执行静态SQL语句并返回结果。MyBatis是一个优秀的持久层框架,它对JDBC的复杂操作进行了封装,使开发者可以专注于编写SQL语句,而无需关心底层的连接管理、参数设置和结果集处理等细节。

2024-11-15 17:21:50 725

原创 用AI写代码,写作画画?选对工具很重要,选一个免费的AI

下面是一个我用着非常得心应手的AI工具集合。代码补全和提示 - 像GitHub Copilot这样的AI工具可以根据上下文提供代码建议,但程序员仍需要判断建议的准确性和适用性。2. 请按步骤分析我的代码:检查错误,评估思路,审阅注释,分析优缺点,提供改进建议,重新设计优化,并添加详细注释。20. 请检查代码中的依赖管理,评估第三方库的使用是否合理,并提供优化建议。5. 请分析我的思路,指出正确和错误之处,提供修正建议,并给出整体讲解。13. 请分析代码的可扩展性,讨论未来可能的发展方向和需要注意的问题。

2024-11-15 17:17:24 1201

原创 MyBatis的包扫描方式注册 Mapper 文件

包扫描是指 MyBatis 自动扫描指定包及其子包中的所有 Mapper 接口,并将它们注册为映射器(Mappers),无需在配置文件中逐一列出每个 Mapper。包扫描是 MyBatis 提供的一种简化 Mapper 注册的方式,通过指定包名,自动扫描并注册该包下的所有 Mapper 接口。配置简洁:减少配置文件中的重复内容。易于维护:新增或移除 Mapper 接口时,无需修改配置文件。提高效率:特别适用于大型项目,提升开发效率。

2024-11-15 17:12:33 645

原创 Mapper 代理开发方式,并进一步对比使用 resource 属性的方式

Mapper 代理是 MyBatis 提供的一种机制,它利用 Java 的动态代理技术,自动为您的 DAO 接口生成实现类。这样,您无需手动编写 DAO 接口的实现类,只需定义接口方法和对应的 SQL 语句,MyBatis 会在运行时生成代理对象,并处理方法调用,将其映射到相应的 SQL 语句执行。方式配置方式优点缺点resource属性手动指定 Mapper XML 文件路径灵活,适用于特殊路径或不规范命名的场景需要手动维护路径,增加配置复杂度Mapper 代理方式。

2024-11-15 17:09:09 747

原创 MyBatis的两种加载映射文件对比

Mapper是 MyBatis 的核心组件之一,负责将接口方法调用映射到相应的 SQL 语句。每个 Mapper 通常对应一个 XML 文件(也可以使用注解)来定义 SQL 语句。

2024-11-15 17:04:42 318

原创 事件冒泡,事件捕获,事件委托

通过getElementById获取标签对象或者querySelector获取标签对象(querySelectorAll获取的是标签对象数组)标签对象.addEventListener("事件类型",事件处理函数,布尔值)-标签对象.onclick=function(){}

2024-11-08 17:05:06 111

原创 JS原型对象--Prototype

原型对象是JS实现继承和方法共享的基础。通过理解原型链、构造函数的。

2024-11-08 16:40:35 912

原创 请求转发与重定向中的路径填写指南

优先使用绝对路径尤其是在重定向时,使用绝对路径可以避免相对路径带来的不确定性。使用动态获取应用根路径,确保路径的准确性。理解请求转发与重定向的区别请求转发:服务器内部跳转,客户端不可见。适用于在服务器内部资源之间的跳转。重定向:客户端跳转,浏览器地址栏会更新。适用于需要通知客户端跳转的场景。合理使用**目录**:将敏感资源置于WEB-INF下,增强应用的安全性。通过Servlet或控制器访问WEB-INF资源,避免直接暴露给客户端。路径一致性。

2024-11-08 16:39:08 956

原创 idea中tomcat配置和引入jar包

通过以上对比表和详细说明,可以更清晰地了解不同热部署配置选项的适用场景和生效机制,帮助在实际开发和部署过程中选择最合适的更新方式。JSP 文件立即生效,刷新页面即可。JSP 文件立即生效,刷新页面即可。重新部署,发布到 Tomcat 中,不重启 Tomcat。更新静态资源,如 HTML、JS、CSS 等。删除原有应用后重新发布,应用更新生效。删除原有应用后重新发布,应用更新生效。综合性更新选项,包含类和静态资源。立即生效,无需重启或重新部署。立即生效,无需重启或重新部署。更新类、JSP 和静态资源。

2024-11-08 16:38:14 516 1

原创 程序员如何选择和运用AI助手以及选一个免费的AI

下面是一个我用着非常得心应手的AI工具集合。代码补全和提示 - 像GitHub Copilot这样的AI工具可以根据上下文提供代码建议,但程序员仍需要判断建议的准确性和适用性。2. 请按步骤分析我的代码:检查错误,评估思路,审阅注释,分析优缺点,提供改进建议,重新设计优化,并添加详细注释。20. 请检查代码中的依赖管理,评估第三方库的使用是否合理,并提供优化建议。5. 请分析我的思路,指出正确和错误之处,提供修正建议,并给出整体讲解。13. 请分析代码的可扩展性,讨论未来可能的发展方向和需要注意的问题。

2024-11-08 16:36:39 1268

原创 JDBC快速学习入门

公共的静态常量:由修饰的变量。公共的抽象方法:未实现的方法,需要具体的实现类来提供方法体。默认方法:使用default关键字修饰的方法,可以在接口中提供默认的实现。静态方法:使用static关键字修饰的方法,可以在接口中定义静态方法。

2024-11-08 15:42:37 428

原创 JavaScript 快速从入门

返回数组中最后一个(从右边数第一个)与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。var lastidx = cars.lastIndexOf("奔驰");// 0lastidx = cars.lastIndexOf("大众");// 未找到,返回-1删除数组中最后一个元素,并返回该元素//福特console.log(cars.toString())//奔驰,宝马,凯迪拉克,大众JavaScript 函数是通过 function 关键词定义的。//函数调用。

2024-11-08 15:36:26 1100

原创 通过代码举例以及概念讲解泛型(泛型类,泛型接口,泛型方法,泛型边界--上界,下界与无界通配符)

通过代码举例以及概念讲解泛型(泛型类,泛型接口,泛型方法,泛型边界--上界,下界与无界通配符,泛型边界的场景使用)

2024-08-24 15:30:11 767

原创 通过问题复习java(检查学习情况)上

通过问题检查自身学习情况

2024-08-23 21:08:01 999

原创 巨简单的学生管理系统用于上课作业(数组,面向对象)

由数组,面向对象,使用Random生成包含数字与英文在内的验证码,包含键盘接受数字时的异常并解决

2024-08-22 17:39:19 418

原创 通过代码对java的lambda表达式和方法引用进行了解

测试类进行调用接口的实现类对象的toLength方法。测试类进行调用接口的实现类对象的toLength方法。测试类进行调用接口的实现类对象的toLength方法。测试类进行调用接口的实现类对象的create方法。函数式接口TestFunctional。函数式接口TestFunctional。函数式接口TestFunctional。函数式接口TestFunctional。

2024-08-20 21:19:02 619

原创 快速复习数据库(包含代码举例注释)

对数据库内容进行快速复习

2024-08-15 20:49:44 1398

原创 java基础每日一测Day01

java全栈每日一测,有许多易错题

2024-08-15 09:59:11 173

原创 eureka与客户端---eureka注册中心与服务提供者

总之,Eureka注册中心和服务提供者之间通过一系列的交互和协作,实现了服务的注册、发现、心跳、健康检查、故障处理、扩容缩容等核心功能。注册中心作为服务的注册表,维护了服务提供者的实例信息,并提供了服务查询和管理的接口。服务提供者作为Eureka客户端,通过与注册中心的通信,完成服务的注册、心跳、故障处理等操作。

2024-08-14 20:45:19 950

原创 nacos的临时实例和非临时实例以及nacos对客户端

临时实例(Ephemeral Instance):非临时实例(Persistent Instance):需要注意的一些细节:客户端初始化:服务注册流程:服务发现流程:心跳机制:配置管理流程:服务健康检查:实例的上下线和权重调整:安全与身份验证:容错和降级:监控和统计:

2024-08-14 20:42:55 1119

原创 多线程常见面试题(详细回答附加代码举例)

【代码】多线程常见面试题(详细回答附加代码举例)

2024-08-12 14:50:11 793

原创 多线程详细讲解(包含全部内容)

包含了多线程从入门到精通的全部内容

2024-08-12 14:47:42 872

原创 RabbitMQ 如何避免消息堆积

消息堆积是消息中间件使用中常见的问题,它可能导致系统性能下降,甚至系统崩溃。理解和解决消息堆积问题对于保证系统的稳定性和可靠性至关重要。

2024-08-12 13:37:27 423

原创 Redis实现分布式锁---最基本的分布式锁、可重入分布式锁、 高可用的锁(附加常见面试题以及代码例子)

分布式锁是分布式系统中的一个重要概念,用于协调不同节点上的并发操作。Redis凭借其高性能和原子性操作,成为了实现分布式锁的热门选择。

2024-08-12 13:32:41 804

原创 Redis的缓存击穿、缓存雪崩、缓存穿透(附加常见面试题、场景以及代码讲解)

缓存击穿是指某个非常热点的数据,在缓存过期的一刻,同时有大量的请求来查询这个数据,导致所有的请求都落在数据库上。缓存雪崩是指在某一个时间段,缓存集中大面积失效,导致所有的查询请求都落到了数据库上,对数据库造成了巨大的压力。

2024-08-12 13:28:25 516

原创 Redis的Key过期策略和内存回收机制(附加面试常问问题及代码举例)

Redis作为一个内存数据库,内存管理是其核心功能之一。因此,Redis需要一种机制来清理不常用、无效或多余的数据,以确保可以继续提供可靠的服务。这就是Redis内存回收的主要目的。

2024-08-11 18:52:37 1151

原创 Redis事务机制深度剖析以及面试官常问问题

Redis事务机制深度剖析以及面试官常问问题

2024-08-11 15:18:07 798

原创 MySQL InnoDB锁机制深度剖析(乐观锁、悲观锁、共享锁、排它锁、行锁、表 锁、死锁)

乐观锁适用于读多写少的场景,可以提高并发性能,但需要在应用层处理冲突。悲观锁适用于写多读少的场景,可以确保数据一致性,但可能影响并发性能。共享锁和排他锁是InnoDB实现并发控制的基础,理解它们有助于我们选择合适的查询方式。行锁提供了细粒度的并发控制,但要注意索引对行锁的影响。表锁在某些情况下是必要的,但应该谨慎使用,因为它会显著降低并发性。死锁是并发系统中的常见问题,需要通过合理的锁策略和事务设计来避免。间隙锁解决了幻读问题,但也可能导致某些操作被阻塞,需要在隔离性和并发性之间权衡。意向锁。

2024-08-11 13:37:35 1254

原创 JVM内存模型底层机制及垃圾收集机制深度剖析

堆内存是JVM中最大的一块内存区域,用于存储对象实例。

2024-08-10 18:30:28 733

原创 Java垃圾回收机制详解

垃圾回收(Garbage Collection,简称GC)是Java虚拟机(JVM)中的一种自动内存管理机制。它可以自动识别和清除不再使用的对象,释放内存空间,防止内存泄漏。// 创建对象// str1不再引用对象,该对象成为垃圾// 方法结束后str2也不再引用对象,两个String对象都会被回收。

2024-08-10 17:38:35 452

原创 Java(JVM)垃圾回收机制深度剖析(附带代码讲解举例)

其中,堆和方法区是线程共享的,而虚拟机栈、本地方法栈和程序计数器是线程私有的。

2024-08-10 17:36:31 929

原创 java面试小知识Day002(HashMap)附加详细解析

为了能让 HashMap 存取高效,尽量较少碰撞,也就是要尽量把数据分配均匀,每个链表/红黑树长度大致相同。这个实现就是把数据存到哪个链表/红黑树中的算法。这个算法应该如何设计呢?我们首先可能会想到采用%取余的操作来实现。但是,重点来了:“取余(%)操作中如果除数是2的幂次则等价于与其除数减一的与(&)操作(也就是说hash%length==hash&(length-1)的前提是 length 是2的 n 次方;

2024-08-10 16:22:48 662

原创 java面试小知识Day002(反射)

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

2024-08-10 16:18:18 294

原创 java面试小知识Day002(关于面向对象)

所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。

2024-08-10 16:15:55 458

原创 Spring微服务的引领介绍讲解

2021.0.x (也称为 Jubilee) 2.6.x, 2.7.x (从 2021.0.3 开始)分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝。SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件。单体架构:简单方便,高度耦合,扩展性差,适合小型项目。②缺点:架构非常复杂,运维、监控、部署难度提高。①优点:拆分粒度更小、服务更独立、耦合度更低。Java中单体架构与分布式架构的优缺点。微服务:一种良好的分布式架构方案。

2024-08-10 16:10:26 529

原创 对Spring拦截器详细讲解

HandlerInterceptor 是在 Java 的 Spring 框架中的一个接口,它用于拦截 Spring MVC 请求的处理。当一个请求到达 DispatcherServlet 并且确定了要调用的 Controller 和相应的Handler 方法之后,但请求真正到达这个 Handler 方法之前, HandlerInterceptor 允许你插入一些自定义的代码。要使拦截器生效,你需要在 Spring MVC 的配置中注册这个拦截器。

2024-08-10 15:59:59 793

原创 详细剖析SpringBoot控制反转和依赖注入以及Bean管理

扫描和注册:Spring容器启动时,会扫描指定包中的类,寻找使⽤了@Component 等注解的类,并将这些类注册为Bean定义。创建和初始化:对于单例作⽤域的Bean,Spring容器会在启动时⽴即创建这些Bean的实例,并进⾏依赖注⼊。依赖注⼊:当Spring容器创建⼀个Bean实例时,会检查其依赖(构造函数参数、Setter⽅法参数、字段)是否有@Autowired 注解,并从容器中查找相应类型的Bean进⾏注⼊。

2024-08-10 15:54:53 812

原创 对Java中的this与super详细解析

对Java中的this与super详细解析与对比

2024-08-09 17:25:32 314

原创 冒泡排序和选择排序详细讲解(附加代码注释)

冒泡排序和选择排序的据详细讲解和分析

2024-08-09 17:02:28 148

原创 @Param讲解,并对比使用与不使用

Param是 Java 中用于参数化测试(Parameterized Test)的注解,主要用于在 JUnit 测试框架中执行。它允许你编写一次测试代码,并用不同的数据集运行多次,从而提高测试的覆盖率和效率。

2024-08-09 13:41:16 503

通过代码进行理解java的泛型,以及为什么要有泛型

通过代码进行理解java的泛型,以及为什么要有泛型

2024-08-07

Java基础知识总结,巨详细

该文档由观看黑马程序员课程以及AI理解进行总结的文档,内容会有些不足,大家可以在评论区讨论

2024-08-07

空空如也

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

TA关注的人

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