自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL SQL优化

本文系统阐述了MySQL数据库在数据插入、主键设计、排序、分组、分页及统计等操作中的优化策略。重点强调主键顺序插入提升性能,推荐使用自增主键;通过创建合适索引避免FileSort,实现Using Index;利用覆盖索引优化LIMIT分页与COUNT统计,优先使用count(*);update操作需确保条件字段有索引以避免行锁升级为表锁。整体遵循最左前缀法则与索引优化原则,显著提升查询与写入效率。

2026-11-04 22:53:19 201

原创 MySQL索引

本文系统介绍了MySQL索引的基本概念、常见结构(B+Tree、Hash等)、分类(主键、唯一、全文等)及实现原理。重点阐述了B+Tree索引在InnoDB中的应用,涵盖聚集索引与二级索引的区别、回表查询机制。结合最左前缀法则、索引失效场景与SQL性能分析工具(慢查询日志、Profile、Explain),提出索引设计原则:针对高频查询字段建立高效联合索引,避免冗余索引,合理使用前缀索引,平衡查询与增删改性能,以提升数据库整体效率。

2026-11-02 22:49:14 114

原创 Linux系统中MySQL的安装

本文详细介绍了在Kali Linux虚拟机中手动安装MySQL 8.0.36的全过程,包括环境准备、依赖安装、解压配置、用户创建、初始化数据、systemd服务注册及远程访问权限设置。通过FinalShell连接虚拟机,使用命令行完成安装与配置,并最终验证MySQL版本、端口、字符集及用户权限,成功实现本地与远程访问,适用于开发、测试等真实Linux环境下的MySQL部署实践。

2026-11-02 14:53:16 177

原创 MySQL存储引擎

MySQL体系结构包括连接层、服务层、引擎层和存储层,其中存储引擎负责数据的存储与提取。主要存储引擎有InnoDB(支持事务、行锁、外键,默认引擎)、MyISAM(不支持事务,表锁,适合读多写少场景)和Memory(数据存于内存,速度快,用于临时表)。选择时应根据应用需求:高事务性选InnoDB,高读取性能选MyISAM,临时缓存用Memory。当前多数场景推荐使用InnoDB。

2026-10-31 23:53:05 134

原创 MySQL事务

事务是不可分割的操作集合,具有ACID特性:原子性、一致性、隔离性与持久性。MySQL默认自动提交事务,可通过set autocommit=0手动控制。使用start transaction、commit或rollback管理事务。并发下存在脏读、不可重复读、幻读问题,通过设置隔离级别(如Read Uncommitted、Read Committed、Repeatable Read、Serializable)来解决,其中MySQL默认为Repeatable Read,级别越高越安全但性能越低。

2026-10-28 09:16:00 158

原创 MySQL多表查询

在项目开发中,多表关系设计分为一对多、多对多和一对一三种类型,分别通过外键、中间表和唯一外键实现。多表查询包括连接查询(内连接、外连接、自连接)和联合查询(UNION/UNION ALL),用于整合多表数据。子查询按结果类型分为标量、列、行和表子查询,根据位置和用途嵌套于SELECT、WHERE、FROM等语句中,提升查询灵活性与精准度。

2026-10-28 08:26:22 111

原创 MySQL函数与约束

本文介绍了MySQL中常用的字符串、数值、日期及流程函数,涵盖拼接、大小写转换、填充、截取、取整、随机数、时间获取与计算等操作。同时阐述了数据库约束机制,包括非空、唯一、主键、默认、检查、外键约束及其作用,重点说明外键的添加、删除及级联行为(如CASCADE、SET NULL等),旨在保障数据的完整性与一致性。

2026-10-23 09:12:47 95

原创 MySQL简介

本文概述MySQL数据库的基本概念,包括数据库、DBMS与SQL的关系,介绍MySQL的安装与启动方法,并讲解其关系型数据模型特点。重点阐述SQL语言的分类(DDL、DML、DQL、DCL)及常用语法,涵盖数据库与表的创建、修改、删除,数据的增删改查操作,以及条件查询、分组、排序、分页等高级查询技巧。同时简要说明用户管理与权限控制,为初学者提供全面的MySQL入门指导。

2026-10-22 14:53:49 141

原创 Java动态代理

动态代理是无侵入式为对象添加额外功能的机制,通过实现相同接口,利用java.lang.reflect.Proxy类的newProxyInstance方法创建代理对象。代理对象在调用方法时,通过InvocationHandler指定处理逻辑,如前置增强(如收钱)、方法转发至目标对象等,实现对原方法的扩展,广泛应用于日志、事务、权限控制等场景。

2026-10-16 22:11:45 154

原创 Java反射

介绍:反射允许对成员变量,成员方法,和构造方法的信息进行编程访问。简单的来说就是通过反射可以获取到成员变量,构造方法,成员方法中的各种信息通过反射获取成员变量后对成员变量进行解剖获取修饰符、获取名字、获取类型、赋值和获取值通过反射获取构造方法后对构造方法进行解剖获取修饰符、获取名字、获取形参、创建对象通过反射获取成员方法后对成员方法进行解剖获取修饰符、获取名字、获取形参、获取返回值、获取抛出的异常、获取注解、运行方法。

2026-10-16 09:19:00 45

原创 Java网络编程

本文介绍了网络编程的基本概念,包括C/S与B/S架构的对比,网络三要素(IP、端口、协议)的作用。重点讲解了UDP和TCP通信原理:UDP面向无连接,速度快但不保证可靠,适用于单播、组播、广播;TCP面向连接,通过三次握手建立连接,确保数据安全,适合文件传输等场景。文中还展示了Java中使用DatagramSocket和Socket类实现网络通信的代码示例,并简要说明了三次握手与四次挥手机制。

2026-10-14 10:05:04 125

原创 Java多线程

多线程是操作系统调度的最小单位,可提升程序效率,适用于并发任务如文件拷贝、聊天软件和服务器处理。实现方式有继承Thread、实现Runnable及Callable接口(支持返回结果)。常用方法包括start、sleep、yield、join等。线程安全问题可通过同步代码块、同步方法或Lock锁解决。生产者-消费者模式通过wait/notify机制实现协作,阻塞队列可简化实现。线程池避免频繁创建销毁线程,提高资源利用率,合理设置核心与最大线程数及拒绝策略,提升系统性能。

2026-10-12 14:51:26 137

原创 JavaIO流

本文系统介绍了Java中IO流的体系结构与应用场景,涵盖字节流(如FileInputStream、FileOutputStream)和字符流(如FileReader、FileWriter)的使用方法,重点讲解了文件读写、拷贝、编码解码及乱码问题。同时介绍了缓冲流、转换流、序列化流、打印流、压缩/解压流等高级流的原理与应用,并结合Commons-io和Hutool工具包提升开发效率,全面阐述了数据存储与读取的解决方案。

2026-09-17 11:25:53 178

原创 Java File

介绍:File对象就表示一个路径,可以是文件的路径、也可以是文件夹的路径这个路径可以是存在的,也可以是不存在的绝对路径于相对路径绝对路径:带盘符的路径相对路径:不带盘符,默认到当前项目下去找。

2026-08-26 10:22:31 166

原创 Java异常

目的:让控制台的报错信息更加的见名知意1.定义异常类在自己书写异常时后面要加上Exception的后缀,表示当前类是一个异常类2.写继承关系运行时异常继承RuntimeException 核心:表示由于参数错误而导致的异常编译时异常直接继承Exception 核心:提醒程序员检查本地信息3.空参构造4.带参构造。

2026-08-25 22:14:39 152

原创 Java方法引用

介绍:将已有的方法直接使用,当作函数时接口中抽象方法的方法体方法引用的前提条件:1.引用处需要是函数式接口2.被引用的方法需要已经存在3.被引用方法的形参和返回值需要跟抽象方法的形参和返回值保持一致4.被引用方法的功能需要满足当前的要求方法引用符: ::格式:类名::静态方法例:Integer::parseInt格式:对象::成员方法格式:其他类对象::方法名格式:this::方法名注:引用处不能是静态方法,静态方法中没有this关键字,如果要引用本类成员方法,需要在非静态的方法中格式:sup

2026-08-23 17:16:40 177

原创 Stream流

本文介绍 Java Stream 流的基本用法,涵盖流的获取方式、中间方法和终结方法。通过集合、数组和零散数据获取流,使用过滤、去重、转换等中间操作处理数据,最后通过遍历、统计、收集等终结方法得到结果,帮助简化集合与数组的操作。

2026-08-22 17:03:02 149

原创 Java双列集合

本文系统介绍了Java中Map集合的核心知识体系。首先阐述了Map作为双列集合顶层接口的特点和常见API,包括键值对存储、键唯一性等基本概念。接着详细讲解了HashMap、LinkedHashMap和TreeMap三大实现类的特性、底层原理及适用场景:HashMap基于哈希表实现,效率最高但无序;LinkedHashMap在哈希表基础上通过双向链表保持插入顺序;TreeMap基于红黑树实现,支持键的自然或自定义排序。文章还提供了Map的三种遍历方式(键找值、键值对、Lambda表达式)的代码示例,并解答了T

2026-08-22 14:27:05 280

原创 Java集合进阶

List系列集合:添加的元素是有序、可重复、有索引Set系列集合:添加的元素是无序、不重复、无索引。

2026-08-12 20:17:15 207

原创 Java常见算法

本文介绍了常见的数据查找和排序算法,以及递归、Arrays工具类和Lambda表达式。查找算法包括基本查找、二分查找、分块查找等;排序算法涵盖冒泡排序、选择排序、插入排序、快速排序等。递归部分强调出口和规则的重要性,Arrays工具类提供了数组操作方法,Lambda表达式则简化了函数式接口的实现。这些内容为Java编程中的数据处理提供了基础支持。

2026-08-07 20:16:02 729

原创 常用API

本文摘要: 文章系统介绍了Java常用工具类及时间处理相关API。主要包括: Math类:提供绝对值、取整、幂运算等静态数学方法; System/Runtime类:系统操作、时间戳、内存监控及进程管理; Object类:克隆、toString/equals重写规则,区分浅/深克隆; 大数运算类:BigInteger处理超大整数,BigDecimal解决小数精度问题; 正则表达式:语法规则、分组捕获及爬虫应用; 时间处理:对比JDK7前(Date/Calendar)与JDK8新增类(Instant/Local

2026-08-04 22:28:03 197

原创 面向对象进阶

本文摘要: Java核心概念总结,主要内容包括:1)static修饰符的特性及用法,包括静态变量/方法的共享性和调用方式;2)继承机制的特点、使用场景和访问规则,重点说明方法重写的注意事项;3)多态的表现形式、调用特点和类型转换;4)包管理、final关键字、权限修饰符和代码块的用法;5)抽象类与接口的定义规范,包括JDK新特性和适配器模式;6)内部类的分类及使用场景,包括匿名内部类的简化写法。全文系统梳理了面向对象编程的关键语法特性,强调了各概念的应用场景和注意事项。

2026-07-26 10:37:55 234

原创 集合ArrayList

文章对比了 Java 集合与数组的异同,并梳理了 ArrayList 的基础用法。数组长度固定且支持所有数据类型,而集合长度可变但只能存储引用数据类型(基本类型需使用包装类);在实际应用中,ArrayList 可以通过泛型语法轻松创建,其底层重写了打印逻辑以直观展示用方括号包裹的元素,并通过 `add`、`remove`、`set`、`get` 和 `size` 等核心方法提供了完整的增删改查与长度获取功能。

2026-07-14 15:35:23 209

原创 Java字符串

本文摘要:Java字符串处理核心知识总结。内容涵盖:1)String类的不可变特性及创建方式(直接赋值/new构造);2)字符串常用方法(比较equals()/遍历charAt()/截取substring()等);3)可变字符串工具StringBuilder和StringJoiner的构造方法及链式编程;4)底层原理:字符串常量池复用机制、==比较规则、拼接优化策略,以及StringBuilder的扩容机制(初始16容量,2倍+2扩容)。重点阐述了字符串处理的高效方法及内存优化原理。

2026-07-12 16:07:11 173

原创 JAVA面向对象

本文介绍了Java面向对象编程的核心概念:1)类与对象的定义与使用,包括类的结构、对象创建和访问方式;2)封装原则与private关键字的使用;3)this关键字的作用;4)成员变量与局部变量的区别;5)构造方法的特点与使用;6)标准JavaBean的编写规范;7)基本数据类型与引用数据类型的存储差异。重点阐述了如何通过类来创建对象,并利用封装、构造方法等特性构建规范的Java程序结构。

2026-07-06 14:07:30 199

原创 JAVA方法

本文介绍了编程中方法的基本概念和使用。方法是最小执行单元,用于封装重复代码或独立功能,提高复用性和可维护性。文章详细说明了方法的定义格式(无参、带参、带返回值)、调用方式及注意事项,包括形参/实参对应关系和return关键字用法。同时讲解了方法重载的定义条件(同名不同参)以及方法调用的内存原理,区分了基本数据类型和引用数据类型在方法传递时的不同表现。最后强调了方法间的平级关系和独立执行特性。

2026-07-03 09:45:58 176

原创 java数组

本文介绍了数组的基本概念和使用方法,主要包括:数组是一种存储同类型数据的容器,建议保持容器类型与数据类型一致。详细讲解了数组的两种定义格式和静态初始化(完整格式和简化格式),以及通过索引访问和修改元素的方法。文章还介绍了数组遍历的实现方式,动态初始化的定义和默认值规律,并与静态初始化进行对比。最后提及了索引越界异常和数组内存图。内容涵盖了数组的声明、初始化、访问、遍历等基础操作,适合初学者系统了解数组的基本用法。

2026-06-30 19:46:10 196

原创 流程控制语句

本文介绍了Java程序中的三种基本控制结构:顺序结构、分支结构和循环结构。顺序结构是默认执行流程;分支结构包括if判断(三种格式)和switch选择语句,详解了语法格式和使用注意事项;循环结构涵盖for、while和do...while循环,比较了它们的特点及适用场景。此外还介绍了无限循环的实现方式以及跳转控制语句(continue跳过本次循环、break终止整个循环)的使用方法。全文重点阐述了不同控制结构的具体语法规则和实际应用中的注意事项。

2026-06-29 15:25:58 180

原创 原码 反码 补码

补码的计算规则:正数的补码不变,负数的补码在反码的基础上+1,另外反码还能多记录一个特殊的值-128,该数据在1个字节下,没有反码和补码。但如果是负数计算,结果就会出错,实际运算的方向,跟正数的运算方向是相反的。反码的计算规则:正数的反码不变,负数的反码在原码的基础上,符号位不变.数值取反,0变1,1变0。反码的弊端:负数运算时,如果结果不跨0,没有问题,但是如果结果跨0,跟实际结果会有1的偏差。补码:正数的补码是其本身,负数的补码是在其反码的基础上+1。计算机中的存储和计算都是以补码的形式进行的。

2026-06-27 09:45:03 213

原创 JAVA运算符

本文介绍了Java中的运算符和表达式,包括七种主要运算符类型:算数运算符(+ - * / %)、自增自减运算符(++ --)、赋值运算符(= +=等)、关系运算符(== !=等)、逻辑运算符(& | && ||等)、三元运算符(?:)以及运算符优先级规则。重点讲解了各种运算符的使用场景、注意事项和特性,如算数运算中的类型转换规则、自增自减运算符的前后置区别、逻辑运算符的短路特性等。文章还特别强调了运算符优先级中括号的最高优先级,建议在需要优先计算时使用括号明确运算顺序。

2026-06-26 21:16:28 212

原创 JAVA基础语法

介绍了编程基础概念:1)注释是代码的解释说明,分为单行(//)、多行(/* /)和文档注释(/* */),后者可生成API文档;2)关键字是Java预定义的特殊小写单词,如class;3)字面量是数据书写格式,包括整数、小数、字符串等类型及特殊值null;4)变量是存储可变数据的容器,通过"数据类型 变量名=值"定义,具有作用域限制,使用前需赋值且不能重复定义。这些是编程入门的基础知识要点。

2026-06-24 17:22:07 223

原创 JDK的下载与安装

点击下方的新建选项,对变量名称和变量值进行填写,这里的变量值是我自己电脑文件中jdk的保存路径,这里注意填写自己电脑上的jdk路径,配置完成后点击确定。进去之后在首页最上方搜索栏搜索java即可下载,可自行选择java的下载版本,根据自己的操作系统选择对应的下载连接。配置Path环境变量的目的:如果想要在任意的目录下都可以打开指定的软件,就可以把软件的路径配置到环境变量中。进去后是这样的,可以看到分为用户变量和系统变量,配置jdk的环境变量是在下方的系统变量中进行配置。lib:存放工具的一些补充JAR包。

2026-06-22 16:38:51 203

原创 cmd的介绍与使用

dir 作用:查看当前路径下的内容。cd\ 作用:回退到盘符目录。cd .. 作用:回退到上级目录。cd 目录 作用:进去单级目录。cmd就是在Windows操作系统中利用命令行的方式去操作计算机。cd 目录1\目录2\... 作用:进入多级目录。盘符名称+冒号 作用:盘符切换。

2026-06-22 16:04:56 221

原创 git的介绍及使用

因为免费开源,速度快,功能强大,支持离线工作以及强大的分支管理等特性,git已经成为了目前世界上最先进的分布式版本控制系统,超过90%的开源项目使用的都是git进行版本控制,github,gitlab,gitee等网站上托管的开源项目都是使用git进行版本管理的,因此对于开发者来说,掌握git是一个必不可少的技能。对于这三个区域的使用,在工作区修改完文件后需要这些文件添加到暂存区,在讲暂存区的修改提交到本地仓库中,在过程中使用git提供的命令进行查看,比较或者撤销修改以此保证版本控制的准确性和完整性。

2026-06-20 10:53:39 194

原创 网络安全初学者的学习

网络安全技术是一种上层的技术,要想对这种技术进行学习,首先要把下层的基础学习好,需要学习各种东西,包括但不限于系统,网络,数据库,中间件,前端/后端的开发语言(开发语言包括:c/php/java/python/golang等,学习了这些基础之后学习上层的网络安全技术。对于以上四个方面的学习需要学习的程度,站在安全的角度来说,合适的程度是可以使用1、2、3涉及的技术自己写一个网站(包括但不限于:用户注册、登录、注销,以及一些其他的业务如文章发布、留言发布、用户权限的控制),完成这些后可以掌握下面的内容。

2025-11-11 19:17:25 237

空空如也

空空如也

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

TA关注的人

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