摘要:
教材基于《计算机组成原理 第3版》 ——唐朔飞 概述 输入输出系统的发展概况 🌈 输入输出系统发展的 4 个阶段 输入输出系统的组成 I/O 设备与主机的联系方式 1️⃣ I/O 设备编址方式 统一编址:将 I/O 地址看作存储器地址的一部分 不统一编址:I/O 地址和存储器地址是分开的,所以对 阅读全文
摘要:
前置说明 不了解二叉树非递归遍历的可以看我之前的文章【数据结构与算法】二叉树模板及例题 Morris 遍历 概述 Morris 遍历是一种遍历二叉树的方式,并且时间复杂度O(N),额外空间复杂度O(1) 。通过利用原树中大量空闲指针的方式,达到节省空间的目的 分析 设一棵二叉树有 n 个节点,则所有 阅读全文
摘要:
存储器分类 习题 存储器的层次结构 存储器三个主要特性的关系 缓存——主存层次和主存——辅存层次 1️⃣ 缓存——主存层次主要解决CPU和主存速度不匹配的问题 2️⃣ 主存——辅存主要解决存储系统的容量问题 3️⃣ 主存——辅存层次发展形成虚拟存储系统。 4️⃣ 需要注意的是,主存和 Cache 之 阅读全文
摘要:
中缀表达式转后缀表达式 方式一 步骤 1️⃣ 如果遇到操作数,我们就直接将其输出。 2️⃣ 如果遇到操作符,则我们将其放入到栈中,遇到左括号时我们也将其放入栈中。 3️⃣ 如果遇到一个右括号,则将栈元素弹出,将弹出的操作符输出直到遇到左括号为止。注意,左括号只弹出并不输出。 4️⃣ 如果遇到任何其他 阅读全文
摘要:
约束 外键约束 外键约束概念 让表和表之间产生关系,从而保证数据的准确性! 建表时添加外键约束 为什么要有外键约束 -- 创建db2数据库 CREATE DATABASE db2; -- 使用db2数据库 USE db2; -- 创建user用户表 CREATE TABLE USER( id INT 阅读全文
摘要:
教材基于《计算机组成原理 第3版》 ——唐朔飞 系统总线 总线的基本概念 ❔ 为什么要用总线 早期计算机外部设备少时大多采原分散连接方式,不易实现随时增减外部设备。为了更好地解决I/O设备和主机之间连接的灵活性问题,计算机的结构从分散连接发展为总线连接。 🔔 知识点: 1️⃣ 总线是连接多个部件的 阅读全文
摘要:
MySQL软件下载 Mysql5.7地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-winx64.zip MySQL安装步骤 下载后会得到zip 安装文件 解压的路径最好不要有中文和空格 这里我解压到 E:\DevTols\ 阅读全文
摘要:
链表模板 链表结构 public class ListNode { int val; ListNode next; ListNode() {} ListNode(int val) { this.val = val; } ListNode(int val, ListNode next) { this. 阅读全文
摘要:
数据库的基本概念 ##什么是数据库? 用于存储和管理数据的仓库 英文单词为:DataBase,简称DB ##数据库的好处? 可以持久化存储数据 方便存储和管理数据 使用了统一的方式操作数据库 -- SQL ##常见的数据库有哪些? #MySQL数据库的介绍和安装 ##MySQL数据库介绍 小型的数据 阅读全文
摘要:
教材基于《计算机组成原理 第3版》 ——唐朔飞 计算机系统介绍 ## 计算机的软硬件概念 🌈 计算机系统组成 🔔 知识点: 1️⃣ 在计算机系统中,软件和硬件在逻辑上是等效的。硬件具有更高的执行速度,软件具有更好的灵活性。执行频繁、硬件实现代价不是很高的功能通常由硬件实现。 2️⃣ 完整的计算机 阅读全文
摘要:
创建初始化类,代替web.xml 在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类,如果找到的话就用它来配置Servlet容器。 Spring提供了这个接口的实现,名为SpringServletConta 阅读全文
摘要:
SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户 SpringMVC视图的种类很多,默认有转发视图和重定向视图 当工程引入jstl的依赖,转发视图会自动转换为JstlView 若使用的视图技术为Thymeleaf,在SpringMVC的配置文件中配置了 阅读全文
摘要:
HttpMessageConverter HttpMessageConverter,报文信息转换器,将请求报文转换为Java对象,或将Java对象转换为响应报文 HttpMessageConverter提供了两个注解和两个类型:@RequestBody,@ResponseBody,RequestEn 阅读全文
摘要:
文件下载 使用ResponseEntity实现下载文件的功能 index.html <!DOCTYPE html> <html lang="en" xmlns:th="http:www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>首页</ 阅读全文
摘要:
前缀和 一维前缀和 前缀和数组 sum 的每一位记录的是当前位置距离起点位置,这连续一段的和区间和。 利用前缀和数组,我们可以快速得到数组任意区间的元素和。 构造前缀和数组的时间复杂度是O(n),获得区间和的复杂度是O(1) 当nums数组的元素下标从0开始算时,需要做出一些调整 模板和例题 Lee 阅读全文
摘要:
RESTful 概念 REST:Representational State Transfer,表现层资源状态转移。 资源 资源是一种看待服务器的方式,即,将服务器看作是由很多离散的资源组成。每个资源是服务器上一个可命名的抽象概念。因为资源是一个抽象的概念,所以它不仅仅能代表服务器文件系统中的一个文 阅读全文
摘要:
通过ServletAPI获取 test.html <a th:href="@{/testServletAPI(username='admin',password=123456)}">链接</a> 控制器 @RequestMapping("/testServletAPI") public String 阅读全文
摘要:
矩阵运算 矩阵的基本生成 m1 = 1:5 % 生成行矩阵[1,2,3,4,5] m2 = 1:2:10 % 起点:步长:终点 [1,3,5,7,9] linspace(x1,x2,n) % 生成 n 个点。这些点的间距为 (x2-x1)/(n-1)。 m3 = linspace(0,5,11) % 阅读全文
摘要:
使用ModelAndView向request域对象共享数据 index.html <a th:href="@{/testModelAndView}">使用ModelAndView</a> 控制器 /** * ModelAndView有Model和View的功能 * Model主要用于向请求域共享数据 阅读全文
摘要:
@RequestMapping注解的源码 @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping public @interface Reques 阅读全文
摘要:
开发环境 IDE:idea 2019.3.2 构建工具:maven3.5.4 服务器:tomcat 9.0.30 Spring版本:5.3.1 创建maven工程 添加打包方式:war 引入依赖 <dependencies> <!-- SpringMVC --> <dependency> <grou 阅读全文
摘要:
图的存储结构 邻接矩阵 适用于边数较多的情况,采用二维数组存储 // 邻接矩阵数组:w[from][to] = weight 代表从 from 到 to 有权重为 weight 的边 int[][] w = new int[N][N]; // 加边操作 void add(int from, int 阅读全文
摘要:
数据库连接池的概念 数据库连接背景 数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。 数据库连接池 数据库连接池负责分配、管理和释放数据库 阅读全文
摘要:
二叉树节点结构 class Node<V>{ V value; Node left; Node right; } 二叉树的遍历(递归) 先序遍历 顺序:根左右 public static void preOrderRecur(Node head) { if (head == null) { retu 阅读全文
摘要:
概念 简介 在计算机科学里, 后缀数组(英语:suffix array)是一个通过对字符串的所有后缀经过排序后得到的数组。此数据结构被运用于全文索引、数据压缩算法、以及生物信息学。 后缀字符串 后缀字符串:从后往前依次递增截取的字符串。长度为 n 的字符串有 n 个后缀 后缀数组和rank数组 后缀 阅读全文
摘要:
Rabin-Karp 算法 概念 用于在 一个字符串 中查找 另外一个字符串 出现的位置。 与暴力法不同,基本原理就是比较字符串的 哈希码 ( HashCode ) , 快速的确定子字符串是否等于被查找的字符串 比较哈希值采用的是滚动哈希法 如何计算哈希值: 如 : “abcde” 的哈希码值为 \ 阅读全文
摘要:
概念 过程 分解:将n 个元素分成个含n/2 个元素的子序列; 解决:对两个子序列递归地排序 合并:合并两个已排序的子序列以得到排序结果 和快排不同的是 归并的分解较为随意 重点是合并 需要额外开辟数组空间 代码实现 public static void mergeSort(int[] arr){ 阅读全文
摘要:
计数排序 概念 一句话︰用辅助数组对数组中出现的数字计数,元素转下标,下标转元素 假设元素均大于等于0,依次扫描原数组,将元素值k记录在辅助数组的k位上 思路:开辟新的空间,空间大小为max(source)扫描source,将value作为辅助空间的下标,用辅助空间的改位置元素记录value的个数。 阅读全文
摘要:
树、二叉树的简单介绍 可以用数组表示一颗二叉树(数组下标从0开始) 左子节点下标是 2n+1 (n是父节点下标) 右子节点下标是 2n+2 (n是父节点下标) 父节点下标是 (n-1)/2 (n是左子节点或者右子节点下标) 堆的概念 二叉堆是完全二叉树或者是近似完全二叉树 二叉堆满足两个特性: 父节 阅读全文
摘要:
概念 快速排序是一种分治的排序算法。它将一个数组分成两个子数组,将两个部分独立地排序。递归调用发生在处理整个数组之后。 快速排序算法首先会在序列中随机选择一个基准值(pivot),然后将除了基准值以外的数分为“比基准值小的数”和“比基准值大的数”这两个类别,再将其排列成以下形式。 [ 比基准值小的数 阅读全文