自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringMVC入门

SpringMVC入门1. Spring与Web环境集成1.1 ApplicationContext应用上下文获取方式1.2 Spring提供获取应用上下文的工具2. SpringMVC的简介2.1 SpringMVC概述2.3 SpringMVC快速入门2.3 SpringMVC流程图示3. SpringMVC的组件解析3.1 SpringMVC的执行流程3.2 SpringMVC注解解析4. SpringMVC的数据响应4.1 页面跳转4.1.1 返回字符串形式4.1.2 返回ModelAndView对

2022-03-14 19:49:16 124

原创 IoC(控制反转)与DI(依赖注入)

IoC与DI1.Spring简介1.1 what is Spring1.2 Spring的优势1.3 Spring体系结构2.Spring快速入门2.1 Spring程序开发步骤3.Spring配置文件(**.xml)3.1 Bean标签基本配置3.2 Bean标签范围配置3.3 Bean生命周期配置3.4 Bean实例化三种方式1)无参构造方法实例化2 )工厂静态方法实例化3)工厂实例方法实例化3.5 Bean依赖注入入门3.6 Bean依赖注入分析3.7 Bean的依赖注入概念注入方式3.8 Bean依

2022-02-17 21:13:03 418

转载 第16章_变量、流程控制与游标(基础篇)

第16章_变量、流程控制与游标1. 变量1.1 系统变量1.1.1 系统变量分类1.1.2 查看系统变量1.2 用户变量1.2.1 用户变量分类1.2.2 会话用户变量1.2.3 局部变量1.2.4 对比会话用户变量与局部变量2. 定义条件与处理程序2.1 案例分析2.2 定义条件2.3 定义处理程序2.4 案例解决3. 流程控制3.1 分支结构之 IF3.2 分支结构之 CASE3.3 循环结构之LOOP3.4 循环结构之WHILE3.5 循环结构之REPEAT3.6 跳转语句之LEAVE语句3.7 跳转

2022-02-08 16:53:50 211

原创 第15章_存储过程与函数(基础篇)

第15章_存储过程与函数1. 存储过程概述1.1 理解1.2 分类2. 创建存储过程2.1 语法分析2.2 代码举例3. 调用存储过程3.1 调用格式3.2 代码举例3.3 如何调试4. 存储函数的使用4.1 语法分析4.2 调用存储函数4.3 代码举例4.4 对比存储函数和存储过程5. 存储过程和函数的查看、修改、删除5.1 查看5.2 修改5.3 删除6. 关于存储过程使用的争议6.1 优点6.2 缺点阿里开发规范MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将复杂的SQL逻辑封装

2022-02-08 16:49:43 159

原创 第14章_视图(基础篇)

第14章_视图1. 常见的数据库对象2. 视图概述2.1 为什么使用视图?2.2 视图的理解3. 创建视图3.1 创建单表视图3.2 创建多表联合视图3.3 基于视图创建视图4. 查看视图5. 更新视图的数据5.1 一般情况5.2 不可更新的视图6. 修改、删除视图6.1 修改视图6.2 删除视图7. 总结7.1 视图优点7.2 视图不足1. 常见的数据库对象对象描述表(TABLE)表是存储数据的逻辑单元,以行和列的形式存在,列就是字段,行就是记录数据字典就是系统表,存放

2022-02-08 14:41:01 291

原创 第13章_约束(基础篇)

第13章_约束1. 约束(constraint)概述1.1 为什么需要约束1.2 什么是约束1.3 约束的分类2. 非空约束2.1 作用2.2 关键字2.3 特点2.4 添加非空约束2.5 删除非空约束3. 唯一性约束3.1 作用3.2 关键字3.3 特点3.4 添加唯一约束3.5 关于复合唯一约束3.5 删除唯一约束4. PRIMARY KEY 约束4.1 作用4.2 关键字4.3 特点4.4 添加主键约束4.5 关于复合主键4.6 删除主键约束5. 自增列:AUTO_INCREMENT5.1 作用5.2

2022-02-08 14:37:09 133

原创 第12章_MySQL数据类型精讲(基础篇)

第12章_MySQL数据类型精讲1. MySQL中的数据类型2. 整数类型2.1 类型介绍2.2 可选属性2.2.1 M2.2.2 UNSIGNED2.2.3 ZEROFILL2.3 适用场景2.4 如何选择?3. 浮点类型3.1 类型介绍3.2 数据精度说明3.3 精度误差说明4. 定点数类型4.1 类型介绍4.2 开发中经验5. 位类型:BIT6. 日期与时间类型6.1 YEAR类型6.2 DATE类型6.3 TIME类型6.4 DATETIME类型6.5 TIMESTAMP类型6.6 开发中经验7.

2022-02-08 14:21:23 123

转载 第11章_数据处理之增删改(基础篇)

第11章_数据处理之增删改1. 插入数据1.1 实际问题1.2 方式1:VALUES的方式添加1.3 方式2:将查询结果插入到表中2. 更新数据3. 删除数据4. MySQL8新特性:计算列5. 综合案例1. 插入数据1.1 实际问题解决方式:使用 INSERT 语句向表中插入数据。1.2 方式1:VALUES的方式添加使用这种语法一次只能向表中插入一条数据。情况1:为表的所有字段按默认顺序插入数据INSERT INTO 表名VALUES (value1,value2,....);值

2022-02-08 14:13:46 148

转载 第10章_创建和管理表(基础篇)

第10章_创建和管理表1. 基础知识1.1 一条数据存储的过程1.2 标识符命名规则1.3 MySQL中的数据类型2. 创建和管理数据库2.1 创建数据库2.2 使用数据库2.3 修改数据库2.4 删除数据库3. 创建表3.1 创建方式13.2 创建方式23.3 查看数据表结构4. 修改表4.1 追加一个列4.2 修改一个列4.3 重命名一个列4.4 删除一个列5. 重命名表6. 删除表7. 清空表8. 内容拓展拓展1:阿里巴巴《Java开发手册》之MySQL字段命名拓展2:如何理解清空表、删除表等操作需谨

2022-02-08 14:08:50 129

原创 第09章_子查询(基础篇)

第09章_子查询1. 需求分析与问题解决1.1 实际问题1.2 子查询的基本使用1.3 子查询的分类2. 单行子查询2.1 单行比较操作符2.2 代码示例2.3 HAVING 中的子查询2.4 CASE中的子查询2.5 子查询中的空值问题2.6 非法使用子查询3. 多行子查询3.1 多行比较操作符3.2 代码示例3.3 空值问题4. 相关子查询4.1 相关子查询执行流程4.2 代码示例4.3 EXISTS 与 NOT EXISTS关键字4.4 相关更新4.4 相关删除5. 抛一个思考题子查询指一个查询语

2022-02-08 14:01:54 113

转载 第08章_聚合函数(基础篇)

第08章_聚合函数1. 聚合函数介绍1.1 AVG和SUM函数1.2 MIN和MAX函数1.3 COUNT函数2. GROUP BY2.1 基本使用2.2 使用多个列分组2.3 GROUP BY中使用WITH ROLLUP3. HAVING3.1 基本使用3.2 WHERE和HAVING的对比4. SELECT的执行过程4.1 查询的结构4.2 SELECT执行顺序4.3 SQL 的执行原理我们上一章讲到了 SQL 单行函数。实际上 SQL 函数还有一类,叫做聚合(或聚集、分组)函数,它是对一组数据进行

2022-02-08 11:53:41 274

原创 第07章_单行函数(基础篇)

第07章_单行函数1. 函数的理解1.1 什么是函数1.2 不同DBMS函数的差异1.3 MySQL的内置函数及分类2. 数值函数2.1 基本函数2.2 角度与弧度互换函数2.3 三角函数2.4 指数与对数2.5 进制间的转换3. 字符串函数4. 日期和时间函数4.1 获取日期、时间4.2 日期与时间戳的转换4.3 获取月份、星期、星期数、天数等函数4.4 日期的操作函数4.5 时间和秒钟转换的函数4.6 计算日期和时间的函数4.7 日期的格式化与解析5. 流程控制函数6. 加密与解密函数7. MySQL信

2022-02-08 11:43:45 287

原创 第06章_多表查询(基础篇)

第06章_多表查询1. 一个案例引发的多表连接1.1 案例说明1.2 笛卡尔积(或交叉连接)的理解1.3 案例分析与问题解决2. 多表查询分类讲解分类1:等值连接 vs 非等值连接等值连接非等值连接分类2:自连接 vs 非自连接分类3:内连接 vs 外连接SQL92:使用(+)创建连接3. SQL99语法实现多表查询3.1 基本语法3.2 内连接(INNER JOIN)的实现3.3 外连接(OUTER JOIN)的实现3.3.1 左外连接(LEFT OUTER JOIN)3.3.2 右外连接(RIGHT O

2022-02-07 17:46:11 243

原创 第05章_排序与分页(基础篇)

第05章_排序与分页1. 排序数据1.1 排序规则1.2 单列排序1.3 多列排序2. 分页2.1 背景2.2 实现规则2.3 拓展1. 排序数据1.1 排序规则使用 ORDER BY 子句排序ASC(ascend): 升序DESC(descend):降序ORDER BY 子句在SELECT语句的结尾。1.2 单列排序SELECT last_name, job_id, department_id, hire_dateFROM employeesORDER BY h

2022-02-07 17:25:20 86

转载 第04章_运算符(基础篇)

第04章_运算符1. 算术运算符2. 比较运算符3. 逻辑运算符4. 位运算符5. 运算符的优先级拓展:使用正则表达式查询1. 算术运算符算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加(+)、减(-)、乘(*)、除(/)和取模(%)运算。1.加法与减法运算符mysql> SELECT 100, 100 + 0, 100 - 0, 100 + 50, 100 + 50 -30, 100 + 35.5, 100 - 35.5 FROM dual;+--

2022-02-07 17:19:52 215

原创 第03章_基本的SELECT语句(基础篇)

第03章_基本的SELECT语句1. SQL概述1.1 SQL背景知识1.2 SQL语言排行榜1.3 SQL 分类2. SQL语言的规则与规范2.1 基本规则2.2 SQL大小写规范 (建议遵守)2.3 注 释2.4 命名规则(暂时了解)2.5 数据导入指令3. 基本的SELECT语句3.0 SELECT...3.1 SELECT ... FROM3.2 列的别名3.3 去除重复行3.4 空值参与运算3.5 着重号3.6 5、查询常数4. 显示表结构5. 过滤数据1. SQL概述1.1 SQL背景知识

2022-01-31 00:30:16 160

原创 第2章_MySQL环境搭建(基础篇)

第2章_MySQL环境搭建1. MySQL的卸载步骤1:停止MySQL服务步骤2:软件的卸载步骤3:残余文件的清理步骤4:清理注册表(选做)步骤5:删除环境变量配置2. MySQL的下载、安装、配置2.1 MySQL的4大版本2.2 软件的下载2.3 MySQL8.0 版本的安装2.4 配置MySQL8.02.5 配置MySQL8.0 环境变量2.6 MySQL5.7 版本的安装、配置2.7 安装失败问题3. MySQL的登录3.1 服务的启动与停止方式1:使用图形界面工具方式2:使用命令行工具3.2 自带

2022-01-31 00:19:22 238

原创 第1章 - 数据库概述(基础篇)

第1章 - 数据库概述1. 为什么要使用数据库2. 数据库与数据库管理系统2.1 数据库的相关概念2.2 数据库与数据库管理系统的关系2.3 常见的数据库管理系统排名(DBMS)2.4 常见的数据库介绍3. MySQL介绍3.1 概述3.2 MySQL发展史重大事件1.4 关于MySQL 8.01.5 Why choose MySQL?1.6 Oracle vs MySQL4. RDBMS 与 非RDBMS4.1 关系型数据库(RDBMS)4.1.1 实质4.1.2 优势4.2 非关系型数据库(非RDBMS

2022-01-30 16:12:22 222

原创 JavaWeb —— 基础(一)

1. 设置编码tomcat8之前,设置编码: 1)get请求方式: //get方式目前不需要设置编码(基于tomcat8) //如果是get请求发送的中文数据,转码稍微有点麻烦(tomcat8之前) String fname = request.getParameter("fname"); //1.将字符串打散成字节数组 byte[] bytes = fname.getBytes("ISO-8859-1"); //2.将字节数组按照设定的编码重新组装成字

2022-01-27 12:02:14 163

原创 JavaWeb —— Tomcat安装与配置

Tomcat1.JavaWeb 的概念a)什么是 JavaWebb)什么是请求c)什么是响应d) 请求和响应的关系2.Web 资源的分类3.常用的 Web 服务器4.Tomcat 服务器和 Servlet 版本的对应关系5.Tomcat 的使用a) 安装b)目录介绍c)如何启动 Tomcat 服务器d)Tomcat 的停止e)如何修改 Tomcat 的端口号f) 如何部暑 web 工程到 Tomcat 中第一种部署方法第二种部署方法g)手托页面到浏览器访问的区别手托 html 页面的原理输入访问地址访问的原

2021-04-29 12:15:42 359

原创 JavaWeb —— Servlet

Servlet1.Servlet 技术a) 什么是 Servletb) 手动实现 Servlet 程序d) Servlet 的生命周期e) GET 和 POST 请求的分发处理1.Servlet 技术a) 什么是 Servlet1、Servlet 是 JavaEE 规范之一。规范就是接口2、Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。3、Servlet 是运行在服务器上的一个 java 小程序,它可以接收客

2021-04-29 11:38:57 75

原创 顺序队列 ——循环队列(C语言)

文章目录顺序队列的表示与相关操作1. 结构的定义(动态分配内存)2. 队列的初始化3. 判断队列是否为空4. 判断是否队满5. 获取队内元素个数6. 向队尾插入元素7. 弹出队头元素8. 遍历队内元素顺序队列的表示与相关操作1. 结构的定义(动态分配内存)typedef struct{ ElemType *elem; //动态数组 int front; //表示队头指针 int rear; //表示队尾指针}SqQueue;2. 队列的初始化/* @descr

2021-03-07 11:28:31 204

原创 链栈(C语言)

文章目录链栈的基本操作1. 链栈的结构定义2. 链栈的初始化3. 判断链栈是否为空4. 向链栈插入新栈顶元素5. 访问栈顶元素6. 弹出栈顶元素7. 从栈顶开始遍历链栈链栈的基本操作1. 链栈的结构定义typedef struct StackNode{ ElemType data; struct StackNode* next;}StackNode, *LinkStack;2. 链栈的初始化/* @description: 链栈的初始化 @return:

2021-03-06 13:33:48 479 1

原创 栈(C语言)

文章目录顺序栈定义与操作1. 结构定义(动态分配内存)2. 栈的初始化3. 判断是否栈空4. 获取栈中元素个数5. 向栈中插入栈顶元素6. 访问栈顶元素7. 取出栈顶元素8. 遍历顺序栈所有元素顺序栈定义与操作1. 结构定义(动态分配内存)typedef struct StackNode{ ElemType data; struct StackNode* next;}StackNode, *LinkStack;2. 栈的初始化/* @description: 初始化顺

2021-03-06 13:28:54 112

原创 线性表 —— 带头结点单链表(C语言)

文章目录线性表之链表操作1. 结构定义2. 链表初始化3. 在链表指定位置插入元素4. 删除链表指定位置的元素5. 获取指定位置元素6. 获取指定元素在链表中的位置7. 从头到尾遍历链表线性表之链表操作1. 结构定义typedef struct LNode* LinkedList;typedef struct LNode{ ElemType data; struct LNode* next;}LNode;2. 链表初始化bool InitLinkedList(Linked

2021-03-04 15:20:32 300 1

原创 线性表——顺序表(C语言)

文章目录线性表之顺序表操作(C语言)1. 动态数组的定义2. 初始化3. 按照位置插入元素4. 删除指定位置元素5. 获取指定位置元素6. 获取指定元素第一次出现的位置6. 合并两个有序的顺序表线性表之顺序表操作(C语言)1. 动态数组的定义/* @description: 定义内存动态分配顺序表 */typedef struct{ ElemType *elem; int Length; int ListSize;}SqList;2. 初始化/* l

2021-03-04 15:02:35 135 1

原创 KMP专题

POJ - 3461 ( Oulipo )#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 1e6 + 10, M = 1e4 + 10;int Next[N], f[N];int n;char s[N], p[M];int slen, plen;void get_

2021-01-09 01:11:31 85

原创 常用排序算法

常用排序算法1. 冒泡排序快速排序归并排序1. 冒泡排序快速排序void quick_sort(int q[], int l, int r){ if(l >= r)return; int x = q[(l + r) >> 1], i = l - 1, j = r + 1; while(i < j){ do i++; while(q[i] < x); do j--; while(q[j] > x);

2020-12-27 00:37:25 80

原创 三、Java面向对象编程(中)

Java面向对象编程(中)1.OOP特征二:继承性1-1 使用继承性的对比1-2 继承性的意义1-3 继承的规则继承性的练习2.方法的重写(override)2-1 定义2-2 重写方法的举例方法重写的练习3.四种访问权限修饰符4.关键字:super4-1 定义4-2 super关键字举例4-3 调用父类的构造器4-4 调用父类构造器举例4-5 this与super的区别super关键字的练习5.子类对象实例化过程6.OOP特征三:多态性6-1 定义6-2 多态性的举例6-3 虚拟方法的调用(Virtual

2020-12-01 22:17:43 313

原创 二、Java面向对象编程(上)

学习面对对象内容的三条主线:1.Java类及类的成员2.面向对象的三大特征3.其它关键字Java面向对象编程(上)1.面向过程与面向对象2.Java基本元素:类与对象2-1 面向对象的思想概述2-2 类的语法格式2-3 创建Java自定义类练习3.对象的创建和使用(类的实例化)练习:4.类的成员之一:属性(field)4-1 语法格式4-2 变量的分类4-3 对象属性的默认初始化赋值5.类的成员之二:方法5-1 方法的定义5-2 方法的声明格式5-3 方法的重载(overload)1、方法的练习.

2020-11-24 17:28:19 193

原创 一、Java基本语法

Java基础知识图解Java基础语法1、关键字与保留字1、关键字与保留字关键字(keyword)的定义和特点:定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写官方地址:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html| 用于定义数据类型的关键字 ||–|--|–|--|–|--|| class | interface | enum | by

2020-11-17 16:41:24 240

原创 第四部分、Netty核心组件

四、Netty核心组成Netty核心组成成分1.Bootstrap、ServerBootstrap2.Future、ChannelFuture3.Channel4.Selector5.ChannelHandler及其实现类6.Pipeline和ChannelPipeline7.ChannelHandlerContext8.ChannelOption9.EventLoopGroup和其实现类NioEventLoopGroup10.Unpooled11.Netty群聊系统12.Netty心跳检测机制案例13.N

2020-11-08 14:11:32 88

原创 Netty架构设计

文档笔记的学习源于尚硅谷韩顺平老师的Netty教程三、Netty架构设计1 Netty概述1.1 原生NIO存在的问题1.2 Netty优点2 I/O线程模型2.1 传统阻塞I/O服务模型2.1.1 模型分析2.1.2 模型代码示例2.2 Reactor模型概述2.3 单Reactor单线程模式2.2.1 模型分析2.2.2 模型实现代码示例2.4 单Reactor多线程模型2.4.1 模型分析2.4.2 模型实现代码示例2.5 主从Reactor多线程2.5.1 模型分析

2020-11-01 13:45:25 152

原创 NIO

1.当客户端连接时,会通过ServerSocketChannel得到SocketChannel2.将SocketChannel注册到selector上,一个selector上可以注册多个SocketChannel3.注册后返回一个selectionKey,会和该selector关联4.selector利用select()进行监听,返回有事件发生通道的个数5.进一步得到各个selectionKey(有事件发生的)6.再通过selectionKey反向获得SocketChannel,方法cha...

2020-10-30 17:51:18 88

原创 Collection子接口的List接口

List接口下的ArrayList、LinkedList、Vector实现的练习import org.junit.Test;import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;import java.util.List;/** * * Collection子接口: * |----List接口:存储有序的、可重复的数据 ——>“动态”数组,替换原有的数组 *

2020-10-11 23:44:34 67

原创 经典滑动窗口模板题

滑动窗口 AcWing154 题目:给定一个大小为n≤106的数组。有一个大小为k的滑动窗口,它从数组的最左边移动到最右边。您只能在窗口中看到k个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为[1 3 -1 -3 5 3 6 7],k为3。窗口位置 最小值 最大值[1 3 -1] -3 5 3 6 7 -1 31 [3 -1 -3] 5 3 6 7 -3 31 3 [-1 -3 5] 3 6 7 -3 51 3 -1 [-3 5 3] 6 7 -3 51 3 -1 -

2020-09-22 00:16:08 520

原创 The XOR Largest Pair(最大异或对)—— 字典树Trie

From《算法竞赛进阶指南》0x16POJ / AcWing143/*数据为10^5,朴素方法O(N^2)会TLE可以利用小于O(NlogN)方法,想到可以利用字典树加贪心优化字典树插入,查询等基本模板如下*/#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <vector>using namespace

2020-09-21 17:55:45 224

原创 The XOR Longest Path(最长异或值路径)—— 字典树Trie

From《算法竞赛进阶指南》0x16 TriePOJ3764 / AcWing 144/*若利用朴素暴力的办法时间复杂度为O(N^2)则可以利用巧妙的数据结构字典树将每个数用32位01表示。再在每一个数与其余数异或最大,从最高位开始优先选择相反的为异或*/#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <vec

2020-09-21 17:53:12 122

原创 IncDec Sequence(增减序列)Acwing102 —— 前缀和、差分

IncDec Sequence(增减序列)Acwing102题目:给定一个长度为 n 的数列 a1,a2,…,an,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。输入格式第一行输入正整数n。接下来n行,每行输入一个整数,第i+1行的整数代表ai。输出格式第一行输出最少操作次数。第二行输出最终能得到多少种结果。数据范围0<n≤10^5,0≤ai&l

2020-09-19 21:16:27 584

原创 Tallest Cow(最高的牛)Acwing101 —— 前缀和、差分

最高的牛(Tallest Cow)有 N 头牛站成一行,被编队为1、2、3…N,每头牛的身高都为整数。当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。现在,我们只知道其中最高的牛是第 P 头,它的身高是 H ,剩余牛的身高未知。但是,我们还知道这群牛之中存在着 M 对关系,每对关系都指明了某两头牛 A 和 B 可以相互看见。求每头牛的身高的最大可能值是多少。输入格式第一行输入整数N,P,H,M,数据用空格隔开。接下来M行,每行输出两个整数 A 和 B ,代表牛 A 和牛 B 可

2020-09-19 14:10:35 1193

空空如也

空空如也

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

TA关注的人

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