- 博客(116)
- 收藏
- 关注

原创 操作系统常见调度算法的详细介绍
调度算法特点适用场景先进先出(FIFO)简单,非抢占式批处理系统前后台调度前台任务优先,后台任务延迟交互式系统最短处理机运行期优先(SJF)最小化平均等待时间批处理系统最高响应比优先(HRRN)兼顾等待时间和运行时间批处理系统优先级调度静态或动态优先级,灵活实时系统、通用系统时间片轮转(RR)公平,适合交互式系统分时系统多级反馈队列(MFQ)结合多种调度算法,动态调整优先级通用系统每种调度算法有其特点,具体应用时应根据系统需求选择合适的算法或组合使用多种算法。
2025-02-11 23:55:37
679

原创 银行家算法(Banker‘s Algorithm)详解
银行家算法(Banker's Algorithm)是一种用于避免死锁的资源分配算法,由计算机科学家提出。它主要用于操作系统中,确保系统在分配资源时不会进入不安全状态,从而避免死锁的发生。银行家算法的核心思想是模拟资源分配,检查分配后系统是否仍然处于安全状态。
2025-02-11 22:56:57
831

原创 SpringMVC拦截器详解:原理、使用与配置
在SpringMVC框架中,拦截器(Interceptor)是一种用于拦截用户请求并进行处理的机制,类似于Servlet中的过滤器(Filter)。用户权限验证用户是否登录验证日志记录请求的预处理和后处理等SpringMVC的拦截器机制是可插拔的,可以在配置文件中进行灵活配置,启用或禁用某个功能的拦截器。例如,如果需要权限验证,只需在配置文件中添加拦截器;如果不需要,只需将其移除。
2025-02-02 12:07:12
792

原创 MyBatis 缓存机制详解
在高并发系统中,数据库查询是系统性能的瓶颈之一。为了提高查询效率,减少数据库的访问次数,缓存机制应运而生。MyBatis 作为一款优秀的 ORM 框架,内置了强大的查询缓存特性,支持一级缓存和二级缓存两级缓存机制。本文将详细介绍缓存的概念、MyBatis 的缓存机制以及如何配置和使用 MyBatis 缓存。一、什么是缓存?1. 什么是缓存?缓存是存储在内存中的数据。当用户查询数据时,系统可以直接从缓存中获取,而不需要访问数据库,从而提升查询效率。2. 为什么使用缓存?减少数据库交互,降低系统的开销。
2025-01-29 16:52:01
1608

原创 java爬虫工具Jsoup学习
JSoup是一个用于处理HTML的Java库,它提供了一个非常方便类似于使用DOM,CSS和jquery的方法的API来提取和操作数据。
2025-01-26 00:08:45
1793

原创 SpringBoot整合Swagger UI 用于提供接口可视化界面
通过以上步骤配置和注解,您就可以在 Spring Boot 项目中使用 Swagger 生成接口文档并通过 Swagger UI 进行展示和交互了。使用 Spring Boot 时,确保版本合适,否则可能无法成功导入。在 Spring Boot 项目中,创建一个 Swagger 配置类来启用 Swagger 功能并进行相关配置。当用户的入参是实体类时,使用该注解描述实体类的结构。访问 Swagger UI 页面,可以查看和测试接口。用于标注控制器类,描述整个类的功能。用于标注方法,描述该接口的功能。
2025-01-25 23:57:38
1261

原创 Java中使用四叶天动态代理IP构建ip代理池,实现httpClient和Jsoup代理ip爬虫
程序通过 API 抓取代理 IP,验证其可用性后存入集合,支持动态更新和多线程并发验证。
2024-12-22 16:34:07
2889

原创 数据库原理学习——MySql触发器详解
触发器(Trigger)是数据库中的一种特殊存储程序,它绑定到某张表(或视图)上,并在特定的数据库操作(如INSERTUPDATE或DELETE)发生时自动执行预定义的操作。触发器无需手动调用,是一种事件驱动的机制。触发器目标检查是否是is_leave字段被更新为1。(表示访客已离开)。②out_time距离当前时间已有 1 年以前。触发时机: 每当表中的is_leave字段被更新为1时,该触发器会自动执行。触发器是一种强大的工具,用于增强数据库的自动化处理能力。
2024-12-21 16:59:58
3906
1

原创 SpringBoot+WebSocket实现在线客服咨询功能以及项目部署
WebSocket是一种协议,用于在Web应用程序和服务器之间建立实时、双向的通信连接。提供了前端浏览器和服务端持久化连接,这使得Web应用程序可以更加实时地传递数据给后端。后端也可以实时发送数据给前端;本项目是基于SpringBoot框架,结合WebSocket协议完成;SpringBoot的版本是2.7.x其中所有的Maven依赖都是支持SpringBoot2.7.x的版本的;如果你用的springboot版本过于新,可能会出错,各种版本不兼容问题等,请大家注意;
2024-11-22 23:39:36
1764

原创 SpringBoot项目实现登录——集成JWT令牌和验证码的登录业务
在我们的项目中,如何防止用户在未登录的情况下就去访问网站内其他的资源呢?答:通常我们使用JWT令牌(token)来实现一个功能完善的登录模块,在用户登录成功后,服务器会返回给前端一串加密过的长字符串作为令牌(token),下次前端再进行请求时带上该令牌作为参数,后端服务器识别后就会允许前端访问其它站点。
2024-11-16 16:08:15
1651
2

原创 Spring基础之——控制反转(IOC)、依赖注入(DI)与切面编程(AOP)概念详解(适合小白,初学者必看)
本篇博客讲详细介绍Spring框架中的两个最核心且最基础的概念:控制反转(IOC)和面向切面编程(AOP)。以及如何通过IDEA来构建一个Spring项目,通过实战和理论结合的方式来让大家真的学会Spring这个最流行的Java框架。Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。它是为了解决企业应用开发的复杂性而创建的。
2024-11-15 20:51:24
1246

原创 MySQL数据库之——事务(Transaction)详解
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在银行管理系统中,用户张三向李四账户转账的操作,账户转账是一个完整的业务,最小的单元,不可再分,这样,完成转账操作的这些SQL语句之和就构成一个事务!总的来说,在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。事务通常用来管理insert(增)、update(改)、delete(删)语句。
2024-10-24 22:49:50
1256
1

原创 Maven学习—如何在IDEA中配置Maven?又如何创建Maven工程?(详细攻略)
本篇博客将详细的介绍在IDEA中如何配置Maven,以及如何创建一个Maven项目;
2024-07-16 23:57:54
9234
1

原创 Maven详解(学习、安装、配置)——看这个一篇就够了
(之前我们创建项目,需要确定项目的目录结构,比如src 存放Java源码, resources存放配置文件,webContent放前端页面,还要配置环境比如JDK的版本等等,如果有多个项目 那么就需要每次自己搞一套配置,十分麻烦。操作麻烦,如果人家版本更新了,或者我们的项目需要更新某个模块,导致之前加入的依赖包,又需要重新下载最新版本,重新加入到项目里。:Maven公司团队所管理的服务器,架设在Internet上,为全世界的所有Maven工程服务,基本上存储着99%的jar包。①阿里中央仓库(首选推荐)
2024-07-12 21:23:23
7664
3
原创 分布式存储学习——HBase表结构设计
本节将介绍如何设计HBase的模式(Schema),将对比HBase与RDBMS的模式设计的异同,重点介绍模式设计中的两个要点——Rowkey和Column Family,并结合4个实例介绍如何进行HBase的模式设计。数据库的模式设计并不是一个新概念,在关系型数据库之前,模式设计的范式已经存在。其实,只要是可以称为“数据库”的系统,都存在模式设计的问题。作为一种典型的列式存储数据库,HBase的模式设计同样非常重要。
2025-03-12 15:57:49
920
原创 分布式存储—— HBase数据模型 详解
1.3 HBase数据模型在开始学习HBase之前非常有必要先学习HBase的特性,因此本节将介绍HBase的逻辑模型、物理模型和访问HBase的方法等。和传统的关系型数据库类似,HBase以表(Table)的方式组织数据,应用程序将数据存入HBase的表中。HBase的表由行(row)和列(Column)共同构成,与关系型数据库不同的是HBase有一个列族(Column Family)的概念,它将一列或者多列组织在一起,HBase的列必须属于某一个列族。
2025-03-05 17:11:47
1205
原创 分布式存储学习——HBase概述
本节将介绍大数据背景和HBase的基本概念,从大数据引申到NoSQL,并阐述HBase出现的契机。随后,将介绍HBase的概念、发展历史、发行版本和基本特性。其中,HBase的核心功能模块将作为一个小节单独重点介绍,最后通过介绍HBase的使用场景和经典案例,让各位同学能够清晰地了解HBase可以做什么。 作为NoSQL家庭的一员,HBase的出现弥补了Hadoop只能离线批处理的不足,同时能够存储小文件,提供海量数据的随机检索,并保证一定的性能。而这些特性也完善了整个Hadoop生态系统,泛
2025-03-05 16:00:37
1046
原创 分布式存储学习——1.HBase的安装和配置
本人大三下学期,学校开设了这门大数据分布式存储选修课,主要学习了HBase,hadoop等分布式存储技术。。。。1.2HBase的安装和配置本节将讲述如何安装、部署、启动和停止HBase集群,以及如何通过命令行的方式对HBase进行基本操作,例如:插入、查询、删除数据。在安装HBase之前强烈建议各位读者仔细阅读1.2.1节,确定这些基本需求都已经满足,否则可能遇到各种棘手的问题,比如查询不到数据甚至丢失数据。
2025-03-05 15:49:41
1083
原创 ThreadLocalMap 、ThreadLocal 、Entry 和线程之间的关系(通俗易懂、且详细)
一个实例就是一个钥匙,对应一个抽屉;钥匙是公共的,但用户只能拿该钥匙去打开自己的抽屉。如果抽屉被占用了(发生哈希冲突),就往后继续遍历数组,找下一个空抽屉。不同用户用同一把钥匙,打开的其实是各自储物柜里对应的抽屉,互不影响!,垃圾回收时,Entry中的Key会被清除(防止内存泄漏)。也就是说,Entry类其实封装着一个键值对,Key是。每个抽屉里存放一个物品(值),抽屉上贴着。是线程私有的,不允许其他线程访问。,每个人有一个自己的大储物柜。(抽屉上有对应钥匙的编号)。实例:储物柜上抽屉的。
2025-02-20 17:23:39
414
原创 java并发编程—synchronized 的基本用法和锁升级机制详解
的锁升级机制是 Java 并发编程中的重要优化,它通过偏向锁轻量级锁和重量级锁的逐步升级,在保证线程安全的同时,尽量减少锁带来的性能开销。开发者可以根据具体的并发场景,理解锁升级的原理,从而编写出更高效的并发程序。
2025-02-13 17:48:16
1047
原创 Java中创建多线程的写法有哪些(Thread、Runnable、Callabel等详解)
接口的扩展,它允许任务有返回值,并且可以抛出异常。:这种方式比较简单;但不够灵活,且不能继承其他类。接口是创建线程的另一种方式,它定义了一个。可以将任务逻辑封装到一个。任务和线程的实现是分离的,可以复用任务代码。接口配合使用,能够更高效地管理线程池。进行线程池管理,能更高效地复用线程。:获取结果,如果任务未完成会阻塞。:在指定时间内获取结果,超时抛出。可以继承其他类,因为不需要继承。接口的实现类,可以直接作为。对象来启动线程,稍显繁琐。:最常见的方式是继承。:判断任务是否完成。
2025-02-11 16:08:04
354
原创 IDEA关闭AI自动代码提示补全功能?
新版的IDEA越来越方便开发,大部分时候可以直接预测我们下一步要写的代码,这在项目开发中确实很方便的帮助我们快速写代码;但是本人处于学习阶段,对于一些Java中的类和方法本就不熟练,尤其是在刷算法题的时候,不利于锻炼我们的思维,那么如何关闭这项功能呢?
2025-02-11 15:24:31
713
原创 Java保证线程安全的常用方法(synchronized 、Atomic...)
在 Java 中,多线程并发安全是指在多个线程并发访问共享资源时,能确保程序的正确性、可靠性和一致性。为了保证多线程并发安全,Java 提供了多种方法和工具,包括关键字、类、接口等。下面我将详细讲解一些常见的方式。锁机制线程间通信Semaphore原子性操作Atomic类、volatile线程本地变量并发集合线程池Executor框架根据实际应用场景选择合适的工具和方法。对于高并发场景,尽量减少锁的竞争,使用原子操作和并发集合类,必要时才使用锁。
2025-02-11 11:36:40
849
原创 代理模式(Proxy Pattern)与面向切面编程(AOP)的区别与联系
代理模式和面向切面编程(AOP)是两个密切相关的概念,但它们在定位和目标上有所不同。联系代理是实现AOP的核心机制AOP(如Spring AOP)的底层实现通常依赖于动态代理技术(JDK动态代理或CGLIB)。代理模式通过拦截目标对象的方法调用,插入横切逻辑(如日志、事务),这正是AOP的核心思想。目标一致:解耦非核心逻辑两者都旨在将横切关注点(如日志、权限、事务)从业务代码中分离,避免代码重复和耦合。区别维度代理模式(Proxy)AOP(面向切面编程)定位一种设计模式。
2025-02-07 14:53:31
384
原创 Java面试题——为什么在 Java 中重写 equals 方法时一定要重写 hashCode方法
让我用简单的方式解释一下为什么在 Java 中重写equals方法时一定要重写hashCode方法。
2025-02-06 23:05:12
348
原创 Linux系统安装Nginx详解(适用于CentOS 7)
通过以上步骤,你已经在CentOS系统上成功安装并配置了Nginx。你可以根据需要进一步配置Nginx来托管网站或应用程序。补充:如果你在更新系统包或者安装Nginx时报错:从错误信息来看,仓库的 URL 似乎有问题,导致无法下载元数据。这可能是因为 CentOS 3 是一个非常旧的版本(已停止支持),而 Nginx 官方仓库不再为其提供支持。
2025-02-06 14:18:06
1440
1
原创 前后端分离的开发框架中,以下几种命令:npm run dev、npm run build:stage 和 npm run build:prod分别有什么作用和区别(详解)
在前后端分离的开发框架中(例如 Vue、React 等),前端的构建和启动过程通常包括以下几种命令:npm run dev和 npm run build:prod。命令环境类型主要功能典型用途开发环境启动开发服务器,支持热更新,调试信息丰富,快速开发前端开发时本地启动应用,调试和修改功能测试环境构建并优化适合测试环境的代码,轻度优化,准备部署到测试环境部署到测试或预发布环境,进行集成和验收测试生产环境进行生产环境级别的压缩和优化,生成适合上线的代码。
2025-02-05 11:33:24
1051
原创 Docker使用指南(一)——镜像相关操作详解(实战案例教学,适合小白跟学)
以下是常见的 Docker 镜像操作命令及其功能Docker 镜像操作涵盖了镜像的拉取、推送、构建、删除、保存、加载、查看和管理等功能。掌握这些命令可以帮助你高效地管理和使用 Docker 镜像。
2025-02-04 11:59:13
1148
原创 Docker入门篇(Docker基础概念与Linux安装教程)
本文介绍了 Docker 的基础概念和常见应用,重点讲解了它如何解决跨系统部署问题,并与虚拟机进行了对比。我们还详细说明了 Docker 镜像、容器、Docker Hub 等核心概念,并提供了在 CentOS 上安装 Docker 的具体步骤。通过这篇教程,你应该能够理解 Docker 的基本功能并顺利安装使用它。掌握 Docker 将帮助你提高开发效率和部署灵活性。如果有更多问题,欢迎继续关注后续内容。Docker 分为 CE 和 EE 两大版本。CE即社区版(免费,支持周期7个月);
2025-02-03 16:45:06
1406
原创 Docker 安装详细教程(适用于CentOS 7 系统)
Docker 分为 CE 和 EE 两大版本。CE即社区版(免费,支持周期7个月);EE即企业版,强调安全,付费使用,支持周期24个月。Docker CE 分为和nightly三个更新频道。官方网站上有各种环境下的安装指南,这里主要介绍Docker CE在CentOS上的安装。Docker CE 支持64位版本 CentOS7,并且要求内核版本不低于3.10,CentOS7满足最低内核的要求,所以我们在CentOS7安装Docker。
2025-02-03 12:47:37
2138
原创 Spring MVC学习——发送请求(@RequestMapping注解及请求参数绑定)
Spring MVC作为Spring框架中的核心组件之一,其强大的功能在于能简洁高效地处理HTTP请求和响应。在开发Web应用时,理解和正确使用Spring MVC的注解,尤其是注解,至关重要。本文将详细讲解注解的使用方法,及其如何绑定请求参数到控制器方法的参数。
2025-02-02 12:51:47
927
原创 深入理解SpringMVC:数据处理、文件上传与异常处理等常见技术应用及解决方案
SpringMVC 是一种非常流行的 Web 应用框架,广泛用于构建基于 Java 的 Web 应用程序。在这篇博客中,我们将详细讲解 SpringMVC 中的几种常见技术应用及解决方案,包括页面跳转、响应 JSON 数据、文件上传、异常处理等。@Override@Override@Override(SysException) ex : new SysException("系统正在维护,请联系管理员");return mv;
2025-02-02 12:46:05
1018
原创 Java Web的发展史与SpringMVC入门学习(SpringMVC框架入门案例)
在这篇文章中,我们将探讨Java Web的演变历史、经典开发模式(如Model I与Model II),以及SpringMVC框架的入门案例。通过这些内容,你将能够理解Web应用的设计理念及其演变过程,并掌握一个简单的SpringMVC项目的搭建过程。MVC(Model-View-Controller)是一种常见的软件架构模式,用于开发用户界面。Model(模型):处理数据和业务逻辑。View(视图):负责数据的展示,用户界面部分。Controller(控制器)
2025-02-02 11:48:15
866
原创 解析与使用 Apache HttpClient 进行网络请求和数据抓取
Apache HttpClient 是 Apache 提供的一个用于处理 HTTP 请求和响应的工具类库。它提供了一种便捷、功能强大的方式来发送 HTTP 请求,并解析 HTTP 响应。HttpClient 适用于多种网络请求场景,能够帮助我们高效地与 Web 服务进行交互。HttpClient 是在 JDK 的基础类库基础上进行封装和增强的一个 HTTP 请求工具库。它提供了更强大、更灵活的功能,比如支持连接池、认证机制、重定向、请求重试等,帮助我们提高开发效率和代码质量。连接池管理。
2025-02-01 21:35:49
1520
原创 Spring JDBC:简化数据库操作的利器
Spring JDBC是Spring框架提供的一种简化数据库操作的机制。它为JDBC(Java Database Connectivity)提供了一个更高层次的抽象,使得开发者可以更加便捷地进行数据库访问,减少了JDBC中繁琐的资源管理和异常处理工作。JDBC是Java与数据库交互的标准方式,但原生的JDBC API存在一些缺点,比如需要大量的模板代码、异常处理复杂等。Spring JDBC通过JdbcTemplate类封装了这些繁琐的操作,使得开发者能够更加专注于业务逻辑,而不是低级的数据库细节。
2025-02-01 21:23:44
779
原创 使用 Spring JDBC 进行数据库操作:深入解析 JdbcTemplate
Spring JDBC 是 Spring 框架中的一个模块,旨在简化数据库访问操作。它通过封装底层的 JDBC API,减少了繁琐的代码,提高了开发效率。传统的 JDBC 编程要求开发人员手动处理数据库连接、SQL 执行、错误处理以及资源释放等。而 Spring JDBC 通过提供类以及其他辅助工具,屏蔽了这些底层细节,使得数据库操作更加简单、直观且易于维护。是 Spring 框架中用于简化 JDBC 操作的核心类,它对传统的 JDBC API 做了封装,提供了丰富的方法,方便开发人员进行数据库操作。
2025-02-01 21:13:36
841
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人