03 2025 档案

摘要:Linux配置JDK JDK 在windows环境下下载tar.gz格式的jdk压缩包 使用Xftp软件将压缩包上传到Linux服务器下的/opt/jdk下面 解压并将文件夹放到usr/local/java下 配置环境变量 使用echo $PATH查看环境变量 配置环境变量的文件为/etc/prof 阅读全文
posted @ 2025-03-26 20:29 QAQ001 阅读(61) 评论(0) 推荐(0)
摘要:组管理 在 Linux 系统中,用户组(Group)是用户管理的重要组成部分。用户组用于将多个用户归类到一起,以便更方便地管理权限和资源。 在添加用户时会默认创建一个和用户名相同名字的组,并将该用户加入组 基本概念 用户组:用户组是多个用户的集合。每个用户可以属于一个主组(Primary Group 阅读全文
posted @ 2025-03-26 20:28 QAQ001 阅读(96) 评论(0) 推荐(0)
摘要:网络配置(centOS) 配置静态IP Linux虚拟机通过VM虚拟软件和主机进行交互 Linux虚拟机通过主机网卡与局域网联通,通过局域网的网关和互联网进行交互 保证Linux虚拟机、VM虚拟软件的IP地址在统一个段内才能进行交互,即前三位相同 配置LinuxIP地址步骤 进入到Linux的网卡中 阅读全文
posted @ 2025-03-26 20:26 QAQ001 阅读(73) 评论(0) 推荐(0)
摘要:任务调度 Cron任务调度 cron 是 Linux 中最常用的任务调度工具,允许用户按固定的时间间隔(如每分钟、每小时、每天等)执行任务。 cron 的工作原理 cron 是一个守护进程(crond),在后台运行并检查是否有需要执行的任务。 用户通过编辑 crontab 文件来定义任务。 cron 阅读全文
posted @ 2025-03-26 20:22 QAQ001 阅读(38) 评论(0) 推荐(0)
摘要:Linux进程 基本概念 在 Linux 系统中,进程是正在运行的程序的实例。每个进程都有一个唯一的进程 ID(PID),并且可以包含一个或多个线程。 进程的基本概念 进程:正在运行的程序的实例,包括代码、数据和系统资源。 线程:进程内的执行单元,共享进程的内存和资源。 PID(Process ID 阅读全文
posted @ 2025-03-26 20:21 QAQ001 阅读(54) 评论(0) 推荐(0)
摘要:Linux磁盘 Linux磁盘分区 Linux 磁盘分区机制是操作系统管理磁盘空间的核心部分。通过分区,可以将一块物理磁盘划分为多个逻辑部分,每个部分可以独立管理、格式化和挂载。 磁盘分区的基本概念 分区:将一块物理磁盘划分为多个逻辑部分,每个部分称为一个分区。 分区表:记录磁盘分区信息的结构,存储 阅读全文
posted @ 2025-03-26 20:17 QAQ001 阅读(64) 评论(0) 推荐(0)
摘要:包管理工具 rpm rpm(Red Hat Package Manager)是用于管理 .rpm 格式软件包的命令行工具,主要用于基于 RPM 的 Linux 发行版(如 CentOS、RHEL、Fedora)。 rpm 的基本功能 安装、升级、卸载软件包。 查询软件包信息。 验证软件包的完整性和签 阅读全文
posted @ 2025-03-26 20:15 QAQ001 阅读(51) 评论(0) 推荐(0)
摘要:Linux常用命令 Linux命令可以组合使用 帮助指令 man(manual)是 Linux 中最常用的帮助命令,用于查看命令的手册页。 man [选项] 命令名 -k:搜索与关键词相关的手册页。 -f:显示命令的简短描述。 help 是 Shell 内置命令的帮助工具,用于查看 Shell 内置 阅读全文
posted @ 2025-03-26 20:14 QAQ001 阅读(49) 评论(0) 推荐(0)
摘要:Linux文本编辑器 VI 和 VIM 是 Linux 系统中广泛使用的文本编辑器,以其高效的编辑方式和强大的功能著称。 VI和VIM VI(Visual Interface)是 Unix 系统中的标准文本编辑器。 VIM(Vi IMproved)是 VI 的增强版,它在 VI 的基础上增加了许多新 阅读全文
posted @ 2025-03-26 18:42 QAQ001 阅读(174) 评论(0) 推荐(0)
摘要:Linux基础知识 Linux 系统 是一种基于 Unix 的开源操作系统内核,由 Linus Torvalds 于 1991 年首次发布。Linux 以其高度的可定制性、稳定性和安全性而闻名,广泛应用于服务器、嵌入式设备、超级计算机以及个人电脑等领域。 Linux系统里一切都被映射为文件,都是用文 阅读全文
posted @ 2025-03-26 18:41 QAQ001 阅读(174) 评论(0) 推荐(0)
摘要:Java操作Redis 分类 Jedis (官方推荐) 特点:轻量级、同步阻塞、直接操作 Redis 命令 导入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.4.3 阅读全文
posted @ 2025-03-26 18:40 QAQ001 阅读(105) 评论(0) 推荐(0)
摘要:Redis相关特性 事务 Redis 事务允许将多个命令打包在一起,按顺序执行,并保证这些命令的原子性(即事务中的命令要么全部执行,要么全部不执行)。Redis 事务通过 MULTI、EXEC、DISCARD 和 WATCH 等命令实现。 事务的基本操作 MULTI 标记事务的开始。执行 MULTI 阅读全文
posted @ 2025-03-26 18:38 QAQ001 阅读(52) 评论(0) 推荐(0)
摘要:Redis--6379 Redis基本介绍 Redis的默认端口为6379 列表和有序集合中索引从 0 开始,负数表示从尾部开始(例如 -1 表示最后一个元素)。 Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统。它支持多种数据结构,如字符串、哈希、 阅读全文
posted @ 2025-03-26 18:36 QAQ001 阅读(94) 评论(0) 推荐(0)
摘要:Docker的使用 安装Docker 下载安装包进行安装 安装完毕启动Docker Windows系统需要开启Hyper-V功能 在启用或者关闭Windows功能中启动Hyper-V功能 Hyper-V 是微软提供的一种虚拟化技术,允许用户在一台物理计算机上创建和运行多个虚拟机(Virtual Ma 阅读全文
posted @ 2025-03-26 18:33 QAQ001 阅读(52) 评论(0) 推荐(0)
摘要:Docker基本概念 概述 Docker 是一个开源的容器化平台,用于开发、发布和运行应用程序。它允许开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中,从而确保应用程序在不同环境中一致运行。 主要特点 轻量级:容器共享宿主机的操作系统内核,比虚拟机更轻量。 可移植性:容器可以在任何支持 D 阅读全文
posted @ 2025-03-26 18:32 QAQ001 阅读(69) 评论(0) 推荐(0)
摘要:RabbitMQ消息可靠性 生产者可靠性 生产者重连 Spring Boot 的 RabbitMQ 客户端(基于 RabbitTemplate)默认已经实现了连接恢复和重连机制。 自动连接恢复 Spring AMQP 使用了 CachingConnectionFactory 来管理 RabbitMQ 阅读全文
posted @ 2025-03-26 18:31 QAQ001 阅读(160) 评论(0) 推荐(0)
摘要:RabbitMQ的使用 相关知识 AMQP协议 AMQP是一种开放标准的消息协议,旨在为消息中间件提供统一的通信框架。它的核心特性包括: 消息可靠性:支持消息的持久化、确认机制和事务。 灵活的路由:通过交换器(Exchange)和绑定(Binding)实现消息的灵活路由。 跨平台和语言:AMQP是协 阅读全文
posted @ 2025-03-26 18:29 QAQ001 阅读(77) 评论(0) 推荐(0)
摘要:RabbitMQ的介绍 RabbitMQ的安装 使用Docker进行安装 docker pull rabbitmq:3-management rabbitmq:3-management 镜像预装了 RabbitMQ 的管理插件(rabbitmq_management)。 管理插件提供了一个基于 We 阅读全文
posted @ 2025-03-26 18:20 QAQ001 阅读(85) 评论(0) 推荐(0)
摘要:消息队列 基本概念 消息中间件(Message-Oriented Middleware, MOM)是一种支持分布式系统中应用之间通过消息传递进行通信的软件或硬件基础设施。它允许应用异步发送和接收消息,确保消息的可靠传递。 核心概念 消息:通信的基本单元,包含数据和元数据(如消息头、属性等)。 队列: 阅读全文
posted @ 2025-03-26 18:18 QAQ001 阅读(77) 评论(0) 推荐(0)
摘要:排序算法 冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法,它通过重复地遍历数组,比较相邻元素并交换位置,将较大的元素逐步“冒泡”到数组的末尾。 基本原理 比较相邻元素: 从数组的第一个元素开始,依次比较相邻的两个元素。 如果前一个元素大于后一个元素,则交换它们的位置。 重复遍历: 阅读全文
posted @ 2025-03-26 18:17 QAQ001 阅读(176) 评论(0) 推荐(0)
摘要:查找算法 二分查找 二分查找(Binary Search)是一种高效的查找算法,适用于在有序数组或列表中查找特定元素。 基本原理: 有序数组:二分查找要求数组或列表必须是有序的(升序或降序)。 中间值比较:通过比较目标值与数组中间元素的大小关系,决定下一步查找的范围。 逐步缩小范围:每次比较后,查找 阅读全文
posted @ 2025-03-26 18:15 QAQ001 阅读(33) 评论(0) 推荐(0)
摘要:Git 初始化仓库 Git仓库实际上就是一个目录,需要对该目录进行Git的初始化将该目录交由Git管理 初始化完成后,该仓库所有的文件都可以被Git进行管理,其所有修改删除等操作都会被跟踪到,也可以随时恢复到以前的版本 初始化本地仓库 如果没有项目目录,可以创建一个新目录 在项目目录中运行以下命令来 阅读全文
posted @ 2025-03-26 18:13 QAQ001 阅读(104) 评论(0) 推荐(0)
摘要:版本控制系统 版本控制系统的作用 版本控制系统(Version Control System,VCS)是一种用于管理文件更改历史的工具,主要用于跟踪代码、文档或其他文件的修改记录。它允许多个开发者协同工作,同时保留每个文件的完整历史记录,并支持回滚到之前的版本、比较不同版本之间的差异等功能。 记录更 阅读全文
posted @ 2025-03-26 18:12 QAQ001 阅读(131) 评论(0) 推荐(0)
摘要:Restful风格 命名规范 使用名词表示资源,而不是动词。 使用小写字母和连字符(-)分隔单词。 避免使用文件扩展名(如 .json、.xml)。 URI 的层次结构 URI 应该具有层次性,反映资源的父子关系。 例如: /users:用户资源集合。 /users/1:ID 为 1 的用户资源。 阅读全文
posted @ 2025-03-18 16:05 QAQ001 阅读(26) 评论(0) 推荐(0)
摘要:Mybatis XML开发 需要mybatis整体的配置文件,一般命名为mybatis-config.xml 在整体配置文件中配置mybatis的环境信息如数据源和事务管理器和mapper映射器等等 <mappers> <mapper resource="mapper/UserMapper.xml" 阅读全文
posted @ 2025-03-18 15:58 QAQ001 阅读(32) 评论(0) 推荐(0)
摘要:HTTP协议 HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。它是万维网(WWW)数据通信的基础,主要用于在客户端(如浏览器)和服务器之间传输超文本(如HTML)和其他资源 HTTP的基本概念 客户端-服务器模型 阅读全文
posted @ 2025-03-18 15:55 QAQ001 阅读(54) 评论(0) 推荐(0)
摘要:路径 一些前提: 假设项目部署在子路径http://localhost:8080/myapp,其中myapp为项目的上下文路径即访问路径 访问前端资源时比如访问index.html时这个html网页中有其他资源比如html、css等需要客户端重新发起对这些资源的请求,所以不能通过这种方式访问到WEB 阅读全文
posted @ 2025-03-18 15:54 QAQ001 阅读(35) 评论(0) 推荐(0)
摘要:使用SpringBoot 版本对应关系: JDK 版本 推荐的 Spring Boot 版本 备注 JDK 8 Spring Boot 2.x(如 2.7.x) Spring Boot 3.x 不支持 JDK 8。 JDK 11 Spring Boot 2.x(如 2.7.x) Spring Boo 阅读全文
posted @ 2025-03-18 15:40 QAQ001 阅读(120) 评论(0) 推荐(0)
摘要:SpringBoot概述 SpringBoot的特性 起步依赖(Starter POMs) Spring Boot 提供了一系列的 Starter 依赖,这些依赖将常用的库和配置打包在一起,开发者只需引入一个 Starter 依赖,即可自动引入相关的库和默认配置。 Stater 通常用于管理项目的初 阅读全文
posted @ 2025-03-18 15:34 QAQ001 阅读(52) 评论(0) 推荐(0)
摘要:SpringMVC整合Mybatis 步骤: 导入相关依赖 Spring核心依赖 Spring-MVC核心依赖 Mybatis核心依赖 MySQL数据库驱动依赖 注意Mysql的版本和驱动版本保持一致 Druid数据库连接池依赖 Spring-Mybatis整合依赖 会自动导入Spring-mabt 阅读全文
posted @ 2025-03-18 15:32 QAQ001 阅读(46) 评论(0) 推荐(0)
摘要:拦截器 基本定义 拦截器(Interceptor)是一种强大的机制,允许在请求处理的不同阶段(如请求到达控制器之前、控制器处理请求之后、视图渲染之后)执行自定义逻辑。拦截器通常用于以下场景: 日志记录。 权限验证。 请求参数预处理。 性能监控等。 工作原理 Spring MVC 拦截器基于 Hand 阅读全文
posted @ 2025-03-18 15:30 QAQ001 阅读(147) 评论(0) 推荐(0)
摘要:SpringMVC SpringMVC使用流程 创建普通Maven项目并导入WEB相关组件 添加SpringMVC依赖 <dependencies> <!-- Spring MVC 核心依赖 --> <dependency> <groupId>org.springframework</groupId 阅读全文
posted @ 2025-03-18 15:29 QAQ001 阅读(65) 评论(0) 推荐(0)
摘要:过滤器 过滤器基本概念 过滤器(Filter) 是一种用于在请求到达目标资源(如 Servlet、JSP)之前或响应返回客户端之前执行某些操作的组件。 Tomcat 作为 Java Web 服务器,完全支持 Servlet 规范中的过滤器机制。过滤器通常用于实现以下功能: 日志记录:记录请求和响应的 阅读全文
posted @ 2025-03-18 15:24 QAQ001 阅读(487) 评论(0) 推荐(0)
摘要:会话和域 Cookie Cookie的基本概念 Cookie 是一小段文本数据(通常不超过 4KB),由服务器发送到客户端并存储在客户端。 每次客户端向服务器发送请求时,会自动将符合条件的 Cookie 附加到请求头中。 在Cookie中,键和值通常是以字符串的形式存放的 Cookie 的作用 会话 阅读全文
posted @ 2025-03-18 15:24 QAQ001 阅读(43) 评论(0) 推荐(0)
摘要:消息转发 请求转发 定义:请求转发是指将客户端的请求从一个资源(如 Servlet)传递到另一个资源(如另一个 Servlet 或 JSP 页面),由目标资源完成响应。 特点: 转发是服务器端行为,客户端不知道转发的发生。 转发过程中,请求对象(HttpServletRequest)和响应对象(Ht 阅读全文
posted @ 2025-03-18 15:23 QAQ001 阅读(69) 评论(0) 推荐(0)
摘要:Servlet开发和常见方法 tomcat开发目录结构 下面为普通java项目,maven项目将src中的替换即可 /MyWebApp /src /com /example HelloServlet.java /web /WEB-INF web.xml index.html Servlet开发流程 阅读全文
posted @ 2025-03-18 15:21 QAQ001 阅读(36) 评论(0) 推荐(0)
摘要:Servlet基本知识 Servlet基本概念 Servlet的定义: Servlet 是 Java 技术中用于扩展服务器功能的组件。它是一个运行在 Web 服务器上的 Java 程序,能够处理客户端(通常是浏览器)的请求并生成动态内容。 它是 Java EE(Java Platform, Ente 阅读全文
posted @ 2025-03-18 15:19 QAQ001 阅读(42) 评论(0) 推荐(0)
摘要:Tomcat Tomcat基本概念 Tomcat 是一个开源的 Java Servlet 容器 和 Web 服务器,由 Apache 软件基金会开发和维护。它是 Java EE(Java Platform, Enterprise Edition)规范中 Servlet 和 JSP(JavaServe 阅读全文
posted @ 2025-03-18 15:17 QAQ001 阅读(24) 评论(0) 推荐(0)
摘要:前端中的Javascript javascript定义方式 内联JavaScript 直接在HTML元素的事件属性中编写JavaScript代码 <body> <h1>Hello, World!</h1> <button onclick="alert('Button clicked!')">Clic 阅读全文
posted @ 2025-03-18 14:53 QAQ001 阅读(39) 评论(0) 推荐(0)
摘要:JSON JSON基本概念 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于 JavaScript 的一个子集,但 JSON 是独立于语言的,许多编程语言都支持 JSON。 JSON基本结构 JSON 数据 阅读全文
posted @ 2025-03-18 14:50 QAQ001 阅读(72) 评论(0) 推荐(0)
摘要:Javascript javascript定义方式 内联JavaScript 直接在HTML元素的事件属性中编写JavaScript代码 <body> <h1>Hello, World!</h1> <button onclick="alert('Button clicked!')">Click Me 阅读全文
posted @ 2025-03-18 14:49 QAQ001 阅读(56) 评论(0) 推荐(0)
摘要:CSS CSS入门 CSS(层叠样式表)用于描述HTML或XML文档的呈现方式,包括布局、颜色、字体等。 基本结构 CSS规则由选择器和声明块组成。 selector { property: value; property: value; /* 更多属性和值 */ } 选择器(Selector):指 阅读全文
posted @ 2025-03-18 14:47 QAQ001 阅读(37) 评论(0) 推荐(0)
摘要:HTML HTML入门 HTML(HyperText Markup Language)是用于创建网页的标准标记语言。它通过标签(tags)来定义网页的结构和内容。 一个基本的HTML文档结构如下 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta cha 阅读全文
posted @ 2025-03-18 14:46 QAQ001 阅读(48) 评论(0) 推荐(0)
摘要:代理模式 代理模式(Proxy Pattern) 是一种结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。代理模式的核心思想是通过引入一个代理对象,在客户端和目标对象之间起到中介作用,从而可以在不改变目标对象的情况下,增加额外的功能或控制访问 代理模式的应用场景: 延迟初始化(懒加载) 阅读全文
posted @ 2025-03-18 14:40 QAQ001 阅读(76) 评论(0) 推荐(0)
摘要:注解方式配置Spring容器 注解方式配置 Spring 容器可以完全替代传统的 XML 配置文件。只需要定义一个配置类,并在配置类上使用注解来指定扫描的包,Spring 就会自动扫描并注册这些包下的组件(如 @Component、@Service、@Repository 等) 核心步骤 导入依赖 阅读全文
posted @ 2025-03-18 14:38 QAQ001 阅读(76) 评论(0) 推荐(0)
摘要:XML方式配置Spring容器 核心步骤 导入依赖 创建Spring配置文件 虽然没有严格的命名规则,通常使用applicationContext.xml作为默认的Spring配置文件名称。 定义Bean 配置Bean的依赖 如果需要使用AOP(面向切面编程),可以在XML配置文件中定义切面、切点和 阅读全文
posted @ 2025-03-18 14:37 QAQ001 阅读(171) 评论(0) 推荐(0)
摘要:Spring基础知识 Spring 是一个开源的 Java 平台框架,广泛用于构建企业级应用程序。它提供了全面的基础设施支持,简化了 Java 开发,特别是在企业级应用中。 IoC(Inversion of Control,控制反转) 和 DI(Dependency Injection,依赖注入) 阅读全文
posted @ 2025-03-18 14:33 QAQ001 阅读(67) 评论(0) 推荐(0)
摘要:Maven Maven的下载配置 根据pycharm编辑器的版本选择对应的maven版本 编辑环境变量,将bin目录加入环境变量中 修改配置文件 配置本地仓库 找到 localRepository 节点,在注释外添加 <localRepository>D:\apache-maven-3.9.8-bi 阅读全文
posted @ 2025-03-17 22:15 QAQ001 阅读(46) 评论(0) 推荐(0)
摘要:xml配置开发流程 在mybatis的全局配置文件中配置mapper.xml文件映射器 <!-- 加载 Mapper 文件 --> <mappers> <mapper resource="com/example/mapper/UserMapper.xml"/> </mappers> 加载配置文件:通 阅读全文
posted @ 2025-03-17 22:12 QAQ001 阅读(44) 评论(0) 推荐(0)
摘要:Mybatis注解 开发流程 导入相关依赖 配置mybatis全局配置文件,创建实体类 创建mapper接口并使用注解在接口中定义sql操作 import org.apache.ibatis.annotations.*; import java.util.List; public interface 阅读全文
posted @ 2025-03-17 22:08 QAQ001 阅读(64) 评论(0) 推荐(0)
摘要:Mybatis-xml配置文件 Mapper配置文件 Mapper 配置文件用于定义 SQL 语句和映射规则。每个 Mapper 文件通常对应一个数据库表的操作 每个数据库表对应一个类 每个mapper接口也对应该数据库中的这个表 (mapper接口 mapper配置文件 pojo类)共同对应所连接 阅读全文
posted @ 2025-03-17 22:00 QAQ001 阅读(271) 评论(0) 推荐(0)
摘要:Mybatis基本介绍 MyBatis 概述 MyBatis 是一个基于 Java 的持久层框架,它封装了 JDBC 操作,简化了数据库交互。MyBatis 通过 XML 或注解配置 SQL 映射,将 Java 对象与数据库记录关联,支持定制化 SQL、存储过程和高级映射。 MyBatis 的核心组 阅读全文
posted @ 2025-03-17 21:53 QAQ001 阅读(53) 评论(0) 推荐(0)
摘要:数据库连接池基本概念 数据库连接池(Database Connection Pool)是一种用于管理数据库连接的技术,旨在提高数据库操作的性能和资源利用率。它通过预先创建并维护一定数量的数据库连接,避免频繁创建和关闭连接的开销,从而提升系统的响应速度和稳定性 为什么需要连接池 传统数据库连接的问题: 阅读全文
posted @ 2025-03-17 21:48 QAQ001 阅读(192) 评论(0) 推荐(0)
摘要:Mysql-JDBC 概念 作用 JDBC 提供了一种标准的方式,使 Java 应用程序能够与不同的数据库进行交互。 它屏蔽了底层数据库的差异,开发者只需使用统一的 API 即可操作各种数据库 组成 JDBC API:提供了一组接口和类,用于连接数据库、执行 SQL 语句和处理结果。 JDBC 驱动 阅读全文
posted @ 2025-03-17 21:47 QAQ001 阅读(121) 评论(0) 推荐(0)
摘要:Mysql函数 MySQL 提供了丰富的内置函数,用于处理数据、执行计算、操作字符串、日期和时间等 数学函数 数学函数用于执行数值计算。 函数名 描述 示例 ABS(x) 返回 x 的绝对值 ABS(-10) → 10 CEIL(x) 返回大于或等于 x 的最小整数 CEIL(3.14) → 4 F 阅读全文
posted @ 2025-03-17 21:41 QAQ001 阅读(25) 评论(0) 推荐(0)
摘要:Mysql事务 MySQL 事务是数据库管理系统中用于确保数据一致性和完整性的重要机制。事务将一系列操作作为一个整体执行,要么全部成功,要么全部失败。 事务的特性(ACID) 事务具有以下四个特性,通常称为 ACID 特性: 原子性(Atomicity):事务中的所有操作要么全部成功,要么全部失败。 阅读全文
posted @ 2025-03-17 21:39 QAQ001 阅读(41) 评论(0) 推荐(0)
摘要:存储引擎 MySQL 存储引擎是 MySQL 数据库的核心组件之一,负责数据的存储、管理和检索。不同的存储引擎提供了不同的功能和性能特性。 存储引擎作用 数据存储 决定数据如何存储在磁盘或内存中。 管理数据的物理存储结构(如表空间、文件等) 数据检索 提供数据的读写接口。 支持索引机制,优化查询性能 阅读全文
posted @ 2025-03-17 21:37 QAQ001 阅读(83) 评论(0) 推荐(0)
摘要:索引 索引(Index)是 MySQL 中用于加速数据检索的一种数据结构。它类似于书籍的目录,可以帮助数据库快速定位到所需的数据,而不需要扫描整个表。合理使用索引可以显著提高查询性能,但不当使用索引可能会导致性能下降。 索引的作用 加速数据检索:索引可以帮助数据库快速定位到符合条件的行,避免全表扫描 阅读全文
posted @ 2025-03-17 21:35 QAQ001 阅读(35) 评论(0) 推荐(0)
摘要:多表查询 多表查询的核心是通过某种条件将多个表的数据关联起来。常见的关联方式包括 连接(JOIN):通过列值匹配将多个表的行组合在一起。 子查询(Subquery):将一个查询的结果作为另一个查询的条件或数据源 连接 连接是 MySQL 中最常用的多表查询方式。它通过列值匹配将多个表的行组合在一起。 阅读全文
posted @ 2025-03-17 21:32 QAQ001 阅读(93) 评论(0) 推荐(0)
摘要:Mysql单表查询 基本语法 SELECT column1, column2, aggregate_function(column3) FROM table_name [WHERE condition] [GROUP BY column1, column2] [HAVING condition] [ 阅读全文
posted @ 2025-03-17 21:31 QAQ001 阅读(82) 评论(0) 推荐(0)
摘要:约束条件 非空约束 非空约束的特点 非空约束强制要求某列的值不能为 NULL,确保该列始终包含有效数据 在某些业务场景中,某些列的值是必须的(例如用户名、订单号等),非空约束可以避免因缺失数据而导致的逻辑错误 如果某列不允许 NULL 值,查询时可以省略对 NULL 值的检查,简化查询逻辑 定义非空 阅读全文
posted @ 2025-03-17 21:29 QAQ001 阅读(98) 评论(0) 推荐(0)
摘要:NULL值比较 在 MySQL 中,NULL 是一个特殊的值,表示“未知”或“不存在”。与 NULL 进行比较时,结果通常是 NULL,而不是 TRUE 或 FALSE。这是因为 NULL 代表未知值,无法确定它与任何其他值的关系 比较运算符与 NULL 当使用比较运算符(如 =、!=、>、< 等) 阅读全文
posted @ 2025-03-17 21:27 QAQ001 阅读(157) 评论(0) 推荐(0)
摘要:Insert、Delete和Update 增加(insert语句) INSERT 语句是 MySQL 中用于向表中插入新数据的语句。它允许将一行或多行数据插入到表中 插入单行数据 INSERT INTO 表名 (列1, 列2, 列3) VALUES (值1, 值2, 值3); INSERT INTO 阅读全文
posted @ 2025-03-17 21:25 QAQ001 阅读(141) 评论(0) 推荐(0)
摘要:Mysql用户管理 MySQL 用户管理 是数据库安全管理的重要组成部分,涉及用户的创建、权限分配、修改和删除等操作。通过合理的用户管理,可以确保数据库的安全性,防止未授权访问和数据泄露。 基本概念 用户 用户是访问 MySQL 数据库的账户,每个用户都有一个唯一的用户名和主机名组合。 用户名和主机 阅读全文
posted @ 2025-03-17 21:24 QAQ001 阅读(229) 评论(0) 推荐(0)
摘要:数据类型 整数类型 数据类型 存储空间 有符号范围 无符号整数 无符号范围 TINYINT 1 字节 -128 到 127 TINYINT UNSIGNED 0 到 255 SMALLINT 2 字节 -32,768 到 32,767 SMALLINT UNSIGNED ` 0 到 65,535 M 阅读全文
posted @ 2025-03-17 21:22 QAQ001 阅读(43) 评论(0) 推荐(0)
摘要:Database常见命令 创建数据库 CREATE DATABASE database_name; #完整语法 #指定字符集和排序规则 CREATE DATABASE [IF NOT EXISTS] database_name [CHARACTER SET charset_name] [COLLAT 阅读全文
posted @ 2025-03-17 21:19 QAQ001 阅读(44) 评论(0) 推荐(0)
摘要:Mysql数据库 初始化 MySQL 数据目录 在首次安装 MySQL 后,需要初始化数据目录。这一步会创建系统表(如 mysql 数据库)和默认用户 mysqld --initialize --user=mysql --initialize:初始化数据目录 --user=mysql:指定运行 My 阅读全文
posted @ 2025-03-17 21:16 QAQ001 阅读(12) 评论(0) 推荐(0)
摘要:线程同步与通信 线程同步 线程同步是指多个线程在访问共享资源时,通过某种机制确保同一时间只有一个线程可以访问该资源,从而避免数据不一致或竞态条件(Race Condition)的发生 synchronized 关键字 synchronized 是Java中最常用的同步机制。它可以用于方法或代码块,确 阅读全文
posted @ 2025-03-17 21:09 QAQ001 阅读(29) 评论(0) 推荐(0)
摘要:多线程 多线程 是指在一个进程中同时运行多个线程,每个线程执行不同的任务 在多线程中,主线程也是一个单独的线程,主线程结束其他线程仍然会继续执行 实现方式 继承 Thread 类,通过继承 Thread 类并重写 run() 方法来实现多线程 简单易用,适合简单的多线程任务 由于 Java 是单继承 阅读全文
posted @ 2025-03-17 21:07 QAQ001 阅读(22) 评论(0) 推荐(0)
摘要:进程 定义 进程 是操作系统分配资源的基本单位,是程序的一次执行过程 每个进程都有独立的内存空间、文件描述符、环境变量等资源 进程之间相互隔离,一个进程崩溃不会影响其他进程 特点 独立性:每个进程有独立的内存空间和资源 隔离性:进程之间通过进程间通信(IPC)机制进行交互 资源开销大:创建和销毁进程 阅读全文
posted @ 2025-03-17 21:06 QAQ001 阅读(27) 评论(0) 推荐(0)
摘要:反射 类的反射机制(Reflection)是 Java 提供的一种强大的功能,允许程序在运行时动态地获取类的信息并操作类的属性、方法和构造器。通过反射,程序可以在运行时分析类、接口、字段和方法,甚至可以调用方法、构造对象、修改字段值等 反射机制的核心类是 java.lang.Class,它是反射的入 阅读全文
posted @ 2025-03-17 21:04 QAQ001 阅读(84) 评论(0) 推荐(0)
摘要:OutputStream字节输出流 OutputStream (抽象类) ├── FileOutputStream ├── ByteArrayOutputStream ├── PipedOutputStream ├── FilterOutputStream │ ├── BufferedOutputS 阅读全文
posted @ 2025-03-17 21:03 QAQ001 阅读(81) 评论(0) 推荐(0)
摘要:InputStream字节输入流 InputStream (抽象类) ├── FileInputStream ├── ByteArrayInputStream ├── PipedInputStream ├── FilterInputStream │ ├── BufferedInputStream │ 阅读全文
posted @ 2025-03-17 21:02 QAQ001 阅读(57) 评论(0) 推荐(0)
摘要:Writer字符输出流 Writer (抽象类) ├── OutputStreamWriter │ └── FileWriter ├── BufferedWriter ├── CharArrayWriter ├── PipedWriter ├── FilterWriter └── PrintWrit 阅读全文
posted @ 2025-03-17 21:00 QAQ001 阅读(105) 评论(0) 推荐(0)
摘要:Reader字符输入流 Reader (抽象类) ├── InputStreamReader │ └── FileReader ├── BufferedReader ├── CharArrayReader ├── PipedReader ├── FilterReader │ └── Pushback 阅读全文
posted @ 2025-03-17 21:00 QAQ001 阅读(49) 评论(0) 推荐(0)
摘要:对象输入流(ObjectInputStream) ObjectInputStream 用于从输入源(如文件、网络等)读取字节流并反序列化为对象 ObjectInputStream必须基于 InputStream(如 FileInputStream)创建,用于从源中反序列化对象 常用方法 Object 阅读全文
posted @ 2025-03-17 20:58 QAQ001 阅读(44) 评论(0) 推荐(0)
摘要:File文件类 File类用于表示文件和目录路径名的抽象表示。它提供了许多方法来操作文件和目录 1. 构造方法 File(String pathname): 通过给定的路径名字符串创建一个新的File实例。 File(String parent, String child): 根据父路径名字符串和子 阅读全文
posted @ 2025-03-17 20:57 QAQ001 阅读(80) 评论(0) 推荐(0)
摘要:Lambda 表达式 Lambda 表达式是 Java 8 引入的一个重要特性,它提供了一种简洁的方式来表示匿名函数(即没有名称的函数)。Lambda 表达式主要用于简化函数式接口的实现,使得代码更加简洁和易读。 函数式接口 函数式接口(Functional Interface)是Java中的一个概 阅读全文
posted @ 2025-03-17 20:52 QAQ001 阅读(30) 评论(0) 推荐(0)
摘要:包装类 包装类(Wrapper Classes)是Java中用于将基本数据类型(如 int、char、boolean 等)封装为对象的类 将基本数据类型转换为对象,以便在需要对象的场景中使用(例如集合类) 提供了一些实用的方法(如类型转换、字符串解析等) 主要功能 包装类可以将基本数据类型封装为对象 阅读全文
posted @ 2025-03-17 20:51 QAQ001 阅读(88) 评论(0) 推荐(0)
摘要:HashMap HashMap 是 Java 集合框架中最常用的类之一,它实现了 Map 接口,基于哈希表(Hash Table)的数据结构。HashMap 提供了高效的键值对存储和检索操作,适合存储大量数据 特点 HashMap键不能重复,值可以相同,如果插入相同的键则会覆盖(如果onlyIfAb 阅读全文
posted @ 2025-03-03 21:57 QAQ001 阅读(49) 评论(0) 推荐(0)
摘要:Map接口 Map 是 Java 集合框架中的一个核心接口,用于表示 键值对(Key-Value Pair) 的集合。Map 接口的实现类包括 HashMap、LinkedHashMap、TreeMap 等 特点 键值对存储 Map 存储的是键值对,每个键(Key)映射到一个值(Value)。 键是 阅读全文
posted @ 2025-03-03 21:57 QAQ001 阅读(46) 评论(0) 推荐(0)
摘要:LinkedHashSet LinkedHashSet 是 Java 集合框架中的一个类,它继承自 HashSet,并实现了 Set 接口 LinkedHashSet 的特点是 既具有 HashSet 的高效性,又维护了元素的插入顺序 特点 基于哈希表和链表实现 LinkedHashSet 内部使用 阅读全文
posted @ 2025-03-03 21:57 QAQ001 阅读(56) 评论(0) 推荐(0)
摘要:HashSet HashSet 是 Java 集合框架中的一个类,它实现了 Set 接口,基于哈希表(Hash Table)的数据结构。HashSet 是一个 无序集合,不允许存储重复元素,并且允许存储 null 值 HashSet特点 基于哈希表实现 HashSet 内部使用哈希表来存储元素,哈希 阅读全文
posted @ 2025-03-03 21:57 QAQ001 阅读(98) 评论(0) 推荐(0)
摘要:LinkedList LinkedList 是 Java 集合框架中的一个类,它实现了 List 接口和 Deque 接口,基于双向链表的数据结构。LinkedList 提供了高效的插入和删除操作,适合频繁修改的场景 特点 基于双向链表: LinkedList 内部使用双向链表来存储元素。 每个节点 阅读全文
posted @ 2025-03-03 21:57 QAQ001 阅读(20) 评论(0) 推荐(0)
摘要:ArrayList ArrayList 是 Java 集合框架中最常用的类之一,它实现了 List 接口,基于动态数组的数据结构。ArrayList 提供了快速的随机访问能力,并且支持动态扩容,适合存储和操作大量数据 特点 基于动态数组 ArrayList 内部使用数组来存储元素。 数组的大小可以动 阅读全文
posted @ 2025-03-03 21:57 QAQ001 阅读(18) 评论(0) 推荐(0)
摘要:Set接口 Set 接口是 Java 集合框架中的一个核心接口,继承自 Collection 接口。它表示一个 不包含重复元素 的集合,即集合中的元素是唯一的 Set接口特点 不允许重复元素 Set 中的元素是唯一的,如果尝试添加重复元素,添加操作会被忽略。 元素的唯一性是通过 equals() 和 阅读全文
posted @ 2025-03-03 21:56 QAQ001 阅读(27) 评论(0) 推荐(0)
摘要:List接口 List 接口是 Java 集合框架中的一个核心接口,继承自 Collection 接口。它表示一个 有序的集合(序列),允许存储重复的元素,并且可以通过索引(下标)访问元素 List接口特点 有序性:元素按照插入顺序存储,可以通过索引访问元素。 允许重复元素:同一个元素可以多次添加到 阅读全文
posted @ 2025-03-03 21:56 QAQ001 阅读(53) 评论(0) 推荐(0)
摘要:Collection接口 Collection 是 Java 集合框架中的一个核心接口,位于 java.util 包中。它是所有单列集合(即存储单个元素的集合)的根接口,提供了对集合进行基本操作的方法。 定义的通用方法 添加元素 boolean add(E e)向集合中添加一个元素,元素成功添加返回 阅读全文
posted @ 2025-03-03 21:56 QAQ001 阅读(68) 评论(0) 推荐(0)
摘要:Collections工具类 Collections 是 Java 集合框架中的一个工具类,位于 java.util 包中。它提供了一系列静态方法,用于操作和处理集合(如 List、Set、Map 等)。Collections 工具类的主要功能包括排序、查找、替换、同步化集合等 主要功能 Colle 阅读全文
posted @ 2025-03-03 21:56 QAQ001 阅读(46) 评论(0) 推荐(0)
摘要:TreeSet TreeSet 是一个有序集合,它扩展了 AbstractSet 类并实现了 NavigableSet 接口 特点 元素唯一性:它存储唯一的元素,不允许重复值 TreeSet不允许null值。 TreeSet中的对象必须实现Comparable 接口或者提供自定义的 Comparat 阅读全文
posted @ 2025-03-03 21:56 QAQ001 阅读(63) 评论(0) 推荐(0)
摘要:集合继承体系 Java 集合框架的核心接口和类位于 java.util 包中 单列集合 单列集合是指存储 单个元素 的集合,每个元素都是独立的。单列集合的核心接口是 Collection,它有两个主要的子接口:List 和 Set 继承体系图 + + | Iterable | (接口) + + ^ 阅读全文
posted @ 2025-03-03 21:56 QAQ001 阅读(38) 评论(0) 推荐(0)
摘要:Math类 Math 类位于 java.lang 包中,提供数学运算的静态方法 Math 类是 Java 中的一个工具类,提供了许多用于数学运算的静态方法。它包含常见的数学函数,如三角函数、指数函数、对数函数、取整函数、随机数生成等。Math 类的方法都是静态的,因此可以直接通过类名调用,无需创建 阅读全文
posted @ 2025-03-03 21:55 QAQ001 阅读(17) 评论(0) 推荐(0)
摘要:StringBuffer StringBuffer 是 Java 中用于处理可变字符串的类。它与 StringBuilder 类似,但有一个重要的区别:StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的 可变性:StringBuffer 的内容可以被修改(追加、插 阅读全文
posted @ 2025-03-03 21:55 QAQ001 阅读(80) 评论(0) 推荐(0)
摘要:String类 String 类是 Java 中最常用的类之一,用于表示和操作字符串。字符串在 Java 中是不可变的(immutable),这意味着一旦创建了一个 String 对象,它的值就不能被改变。 字符串的拼接 String a = "HH" + "abc" 这种拼接方式会在编译时被优化为 阅读全文
posted @ 2025-03-03 21:55 QAQ001 阅读(14) 评论(0) 推荐(0)
摘要:包装类 包装类(Wrapper Classes)是Java中用于将基本数据类型(如 int、char、boolean 等)封装为对象的类 将基本数据类型转换为对象,以便在需要对象的场景中使用(例如集合类) 提供了一些实用的方法(如类型转换、字符串解析等) 主要功能 包装类可以将基本数据类型封装为对象 阅读全文
posted @ 2025-03-03 21:55 QAQ001 阅读(37) 评论(0) 推荐(0)
摘要:泛型 泛型(Generics) 是 Java 5 引入的一项重要特性,它允许在定义类、接口和方法时使用类型参数,从而提高代码的复用性、类型安全性和可读性。泛型的核心思想是 参数化类型,即在使用时才指定具体的类型。 泛型的作用 类型安全:在编译时检查类型,避免运行时的类型转换错误 代码复用:通过泛型可 阅读全文
posted @ 2025-03-03 21:55 QAQ001 阅读(37) 评论(0) 推荐(0)
摘要:异常 异常(Exception)和错误(Error)都是Throwable类的子类,但它们有不同的用途和继承关系 Throwable ├── Error │ ├── OutOfMemoryError │ ├── StackOverflowError │ └── ... └── Exception ├ 阅读全文
posted @ 2025-03-03 21:55 QAQ001 阅读(42) 评论(0) 推荐(0)
摘要:内部类 内部类(Inner Class)是指定义在另一个类内部的类。内部类提供了更好的封装性,并且可以访问外部类的成员,包括私有成员 内部类主要有四种类型:成员内部类、局部内部类、匿名内部类和静态内部类。 内部类的字节码文件会生成在与外部类相同的目录下。 成员内部类的字节码文件命名规则为:外部类名$ 阅读全文
posted @ 2025-03-03 21:55 QAQ001 阅读(79) 评论(0) 推荐(0)
摘要:抽象类 抽象类是 Java 中一种特殊的类,它不能被实例化,通常用于作为其他类的基类。抽象类可以包含抽象方法(没有实现的方法)和具体方法(有实现的方法) 使用 abstract 关键字修饰的类称为抽象类 抽象类可以包含抽象方法和具体方法 抽象类不能被实例化,只能被继承 abstract class 阅读全文
posted @ 2025-03-03 21:55 QAQ001 阅读(22) 评论(0) 推荐(0)
摘要:枚举类 枚举类(Enum Class)是Java中一种特殊的类,用于定义一组固定的常量。枚举类在Java 5中引入,它提供了一种更安全、更灵活的方式来定义常量,并且可以包含方法、字段和构造函数。枚举类的每个常量都是枚举类的一个实例 枚举类的定义 枚举类使用enum关键字定义,枚举常量通常用大写字母表 阅读全文
posted @ 2025-03-03 21:55 QAQ001 阅读(50) 评论(0) 推荐(0)
摘要:static关键字 static 是 Java 中的一个关键字,用于修饰类的成员(变量、方法、代码块和内部类)。static 成员属于类本身,而不是类的实例 类级别:static 成员属于类,而不是类的实例。 共享性:所有实例共享同一个 static 成员。 直接访问:可以通过类名直接访问 stat 阅读全文
posted @ 2025-03-03 21:54 QAQ001 阅读(49) 评论(0) 推荐(0)
摘要:Object类 Object 类是 Java 中所有类的根类,所有类都直接或间接继承自 Object 类。它定义了一些通用的方法,这些方法可以被所有 Java 对象使用。 其中包括public boolean equals(Object obj)、public int hashCode()、publ 阅读全文
posted @ 2025-03-03 21:54 QAQ001 阅读(21) 评论(0) 推荐(0)
摘要:封装 封装的核心思想是将对象的内部状态(数据)和行为(方法)隐藏起来,只暴露必要的接口供外部访问。 通过访问修饰符(如 private、public、protected 和默认访问权限)控制对类的成员(字段和方法)的访问封装通过访问修饰符(如 private、public)和 getter、sett 阅读全文
posted @ 2025-03-03 21:54 QAQ001 阅读(32) 评论(0) 推荐(0)
摘要:包 包的定义 使用 package 关键字声明包,在 Java 源文件的开头,声明包的语句(package 语句)必须放在 Java 源文件的开头,且必须是文件中的第一条有效代码(注释和空白行除外) package com.example.mypackage; public class MyClas 阅读全文
posted @ 2025-03-03 21:54 QAQ001 阅读(79) 评论(0) 推荐(0)
摘要:在 Java 中,类(Class)和对象(Object)是面向对象编程(OOP)的核心概念。类是对象的模板,而对象是类的实例。 类 类是对象的蓝图或模板,它定义了对象的属性(字段)和行为(方法) class 类名 { // 字段(属性) 数据类型 字段名; // 构造方法 类名(参数列表) { // 阅读全文
posted @ 2025-03-03 21:54 QAQ001 阅读(40) 评论(0) 推荐(0)
摘要:一维数组 Java 中的一维数组是一种线性数据结构,用于存储相同类型的多个元素。数组在内存中是连续分配的,可以通过索引访问每个元素 数组的声明和初始化 声明数组: 数据类型[] 数组名; // 推荐写法 或 数据类型 数组名[]; // 不推荐 int[] numbers; // 声明一个整型数组 阅读全文
posted @ 2025-03-03 21:53 QAQ001 阅读(37) 评论(0) 推荐(0)
摘要:条件控制 条件控制语句根据条件的真假来决定程序的执行路径。 单分支if语句 if (条件) { // 条件为 true 时执行的代码 } //其他代码 双分支if-else 语句 if (条件) { // 条件为 true 时执行的代码 } else { // 条件为 false 时执行的代码 } 阅读全文
posted @ 2025-03-03 21:53 QAQ001 阅读(11) 评论(0) 推荐(0)
摘要:普通运算符 描述 % 取模(求余) ++,-- 自增或自减前缀(++a):先自增,再使用值。后缀(a++):先使用值,再自增。 && 逻辑与(AND) || 逻辑或(OR) += 加后赋值 ? : 条件运算符:int max = (a > b) ? a : b instanceof if (obj 阅读全文
posted @ 2025-03-03 21:53 QAQ001 阅读(31) 评论(0) 推荐(0)
摘要:变量 变量基本描述 变量是内存中的一块存储区域,用于保存数据 每个变量都有一个 数据类型,决定了变量可以存储的数据种类和范围 变量必须需要通过声明来定义,然后才能使用 变量的三要素:数据类型、变量名、值 变量命名规则:1. 变量名必须以字母、下划线(_)或美元符号($)开头2. 变量名不能以数字开头 阅读全文
posted @ 2025-03-03 21:53 QAQ001 阅读(30) 评论(0) 推荐(0)
摘要:整数的表示 整数通常以 二进制补码 的形式存储,其中原码和反码存在+0和-0两个不同的值,而且加减法复杂。补码解决了上述问题 形式 定义 原码 最高位是符号位(0 表示正数,1 表示负数),其余位表示数值的绝对值十进制 +5 的原码:00000101十进制 -5 的原码:10000101 反码 正数 阅读全文
posted @ 2025-03-03 21:53 QAQ001 阅读(29) 评论(0) 推荐(0)
摘要:Java 转义字符 Java转义符 含义 反斜杠(\)为转义符 转义符只能在字符串(String)或字符(char)中使用。 \t 制表符(Tab) \n 换行符(Newline) \r 回车符,定位到行首 \b 退格符 \r\n Windows 使用 \r\n 作为换行符 Java注释类型 语法 阅读全文
posted @ 2025-03-03 21:52 QAQ001 阅读(51) 评论(0) 推荐(0)
摘要:Windows常用快捷键 作用 Win + E 打开“文件资源管理器”(我的电脑) Win + L 锁定计算机 Win + P 切换投影模式(多显示器环境下) Win + V 打开剪贴板历史记录 Win + , 临时查看桌面(松开后恢复原状) Win + ↑,↓ 最大化(最小化)当前窗口 Win + 阅读全文
posted @ 2025-03-03 21:52 QAQ001 阅读(41) 评论(0) 推荐(0)
摘要:JDK和JRE 相关概念 JDK=JRE+Java开发工具,JRE=JVM+Java核心类库 JVM:java虚拟机,运行编译好的java代码,不同操作系统有不同JVM实现,实现java的跨平台性 javac命令:编译源代码,生成class文件。java命令:运行编译后的字节码。 java是解释性语 阅读全文
posted @ 2025-03-03 21:52 QAQ001 阅读(27) 评论(0) 推荐(0)
摘要:1-6个(#)分别代表1-6级标题 对称数量的 (`) 包围的字体显示文本框,创建相关代码块需要在第一组 (```) 后加入语言名称即可,代码块的`数量为三个 使用 < br >标签进行换行 MarkDown的转移字符是反斜杠 ( \ ) 加粗、斜体、加粗倾斜:单词或短语的前后各添加各自数量的星号( 阅读全文
posted @ 2025-03-03 21:47 QAQ001 阅读(39) 评论(0) 推荐(0)