自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (2)
  • 收藏
  • 关注

原创 2021总结和2022展望

一、前面的三个月记得第一次接触Java是在大一下学期接近期末的时候(2020年6月份),那个时候疫情待在家整天无所事事,网课划水,打游戏,虚度时光,那个时候开始意识到自己的生活状态太差了,就是那种找不到生活的意义,总归得找点事做才不会闲下来乱想。后面在b站上接触到Java,大一下暑假也开始学web开发相关的东西。到了大二上的时候,开始接触框架相关的东西,只是到了会用的程度,源码看起来非常复杂直接劝退了。然后和hy大佬去了学校某个实验室的网站维护划水,那段时间学完ssm框架后也懒得往下学了,然后大概11月份

2022-01-02 12:57:58 1502 5

原创 MIT6.830 lab6 Rollback and Recovery 实验报告

一、概览1.steal/no-force策略lab6要实现的是simpledb的日志系统,以支持回滚和崩溃恢复;在lab4事务中,我们并没有考虑事务执行过程中,如果机器故障或者停电了数据丢失的问题,bufferpool采用的是no-steal/force的策略,而这个实验我们实现的是steal/no-force策略,两种策略的区别如下:steal/no-steal: 是否允许一个uncommitted的事务将修改更新到磁盘,如果是steal策略,那么此时磁盘上就可能包含uncommitted的数据,

2021-11-13 16:19:22 2761 5

原创 MIT6.830 lab5 B+ Tree Index 实验报告

一、实验概览lab5主要是实现B+树索引,主要有查询、插入、删除等功能,查询主要根据B+树的特性去递归查找即可,插入要考虑节点的分裂(节点tuples满的时候),删除要考虑节点内元素的重新分配(当一个页面比较空,相邻页面比较满的时候),兄弟节点的合并(当相邻两个页面的元素都比较空的时候),以上就是本实验要实现的大致内容。In this lab you will implement a B+ tree index for efficient lookups and rangescans. We sup

2021-11-08 15:48:25 1802

原创 MIT6.830 lab4 SimpleDB Transactions 实验报告

一、实验预览lab4要做的是让SimpleDB支持事务,所以实验前需要对事务的基本概念有了解,并知道ACID的特点。lab4是基于严格两阶段封锁协议去实现原子性和隔离性的,所以开始前也需要了解两阶段封锁协议是如何实现事务的。对于一致性和持久性,这里假设暂时不会发送断电等异常,所以暂时不需要崩溃恢复,不需要undo log从,后面lab6会有专门的崩溃恢复的解决方案。事务的基本概念:A transaction is a group of database actions (e.g., inserts,

2021-10-27 18:51:57 1726

原创 MIT6.830 Lab3 Query Optimization 实验报告

一、实验概览lab3实现的是基于代价的查询优化器,以下是讲义给出的实验的大纲:Recall that the main idea of a cost-based optimizer is to:Use statistics about tables to estimate “costs” of differentquery plans. Typically, the cost of a plan is related to the cardinalities(基数) of(number o

2021-10-15 18:12:42 1310 14

原创 MIT6.830 lab2 SimpleDB Operators 实验报告

一、实验概览以下是资料对本实验的介绍Implement the operators Filter and Join and verify that their corresponding tests work. The Javadoc comments forthese operators contain details about how they should work. We have given you implementations ofProject and OrderBy which

2021-10-09 17:38:06 2113

原创 MIT6.830 lab1 SimpleDb 实验报告

一、环境搭建1.课程官网:6.830/6.814: Database Systems2.Github地址:simple-db-hw-20213.安装配置ant二、实验概览SimpleDB consists of:Classes that represent fields, tuples, and tuple schemas;(字段、元组(即记录)、模式)Classes that apply predicates and conditions to tuples;(描述元组)One or

2021-10-03 16:32:34 2728

原创 打家劫舍I&II

lc198.打家劫舍1题目思路状态转移方程f[i]的含义:表示抢劫到第i家(从0开始)时,能够获得的最高金额考虑集合的两个组成部分:1.第i家进行打劫,意味着第i-1家不能进行打劫,否则会触发警报,则f[i] = f[i-2] + nums[i];2.第i家不进行打劫,则最大金额为f[i] = f[i-1];代码class Solution { public int rob(int[] nums) { int n = nums.length; if(

2021-08-04 15:36:27 96

原创 lc300.最长递增子序列

lc300.最长递增子序列题目给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4提示:1 &lt

2021-08-01 21:32:51 113

原创 lc72.编辑距离

题目给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (删除 ‘r’)rose -> ros (删除 ‘e’)示例 2:输入:word1 = “inte

2021-08-01 15:10:22 132

原创 进程创建的几种方式

进程创建的几种方式1.forkfork用于创建子进程,系统调用函数:pid_t fork(void) 返回值是当前进程的pid调用fork的进程我们称为父进程(父进程的返回值是0)fork原理:当一个进程调用fork,操作系统会为该进程创建一个几乎一模一样的新进程。当fork完成时,两个进程的内存、寄存器、程序计数器等状态都完全一致,但它们是完全独立的两个进程,拥有不同的PID和虚拟内存空间,在fork完成后它们会各种独立地执行,互不干扰。fork中还有写时拷贝的机制,一开始两个进程的地址空间

2021-06-13 11:29:12 3912

原创 Java运行时数据区及对象的分配

一、Java运行时数据区简图:简述:堆、方法区是线程共享的,虚拟机栈、程序计数器、本地方法栈是线程私有的,一个线程一份。虚拟机栈的基本单位是栈帧,一个方法的开始执行意味着一个栈帧进栈,一个方法的执行结束意味着一个栈帧进栈程序计数器(PC)是记录字节码指令地址的地方,字节码解释器通过改变PC的值来执行一条一条字节码指令。本地方法栈的结构跟虚拟机栈类似,主要是用来执行本地方法。堆是存放对象的地方,JDK1.7后类变量和字符串常量池也放在了堆。方法区主要存放被类加载器加载后的各种类型信息、方法

2021-06-05 20:45:06 205 2

原创 编写一个计算机程序用来计算一个文件的 16 位效验和(Java实现)

编写一个计算机程序用来计算一个文件的 16 位效验和(Java实现)题目编写一个计算机程序用来计算一个文件的 16 位效验和。最快速的方法是用一个 32 位的整数来存放这个和。记住要处理进位(例如,超过 16 位的那些位),把它们加到效验和中。原理把要发送的数据看成 16 比特的二进制整数序列,并计算他们的和。若数据字节长度为奇数,则在数据尾部补一个字节的 0 以凑成偶数。示例程序设计思路1.使用BufferedReader读入文件,每次读一行,每次都会得到一个String类型变量;2.将

2021-05-27 23:43:11 690

原创 写一个程序来模拟网桥功能(Java实现)

题目描述模拟实现网桥的转发功能,以从文件中读取帧模拟网桥从网络中收到一帧,即从两个文件中读入一系列帧,从第一个文件中读入一帧然后从第二个文件中再读入一帧,如此下去。对每一帧,显示网桥是否会转发,及显示转发表内容。题目要求Windows 或 Linux 环境下运行,程序应在单机上运行。分析用程序模拟网桥功能,可以假定用两个文件分别代表两个网段上的网络帧数据。而两个文件中的数据应具有帧的特征,即有目的地址,源地址和帧内数据。程序交替读入帧的数据,就相当于网桥从网段中得到帧数据。对于网桥来说,能否转发帧

2021-05-27 23:42:30 1474 2

原创 Spring boot上传文件(图片)到阿里云OSS(直接上传到应用服务器)

Spring boot上传文件(图片)到阿里云OSS(直接上传到应用服务器)主要思路上传图片的思路有两种:第一种是上传到应用服务器,再由应用服务器上传到OSS。这种适合上传的文件较小,较为简单,但文件过大会造成服务器压力变大。第二种是利用签名直传的方式,较为复杂,但能减轻服务器的压力。直接上传到应用服务器的方式0.导入依赖除去常规的依赖还需要以下依赖: <dependency> <groupId>com.aliyun.oss&

2021-04-27 22:11:42 2340 1

原创 Git&Github学习笔记

好好学习Git!

2021-04-22 22:43:35 221

原创 IDEA登录Github账号失败的解决办法

IDEA登录Github账号失败的解决办法如图,密码输入正确也无法登录解决办法:使用token登录1.登录GitHub,点击settings2.生成新的token3.将token输入到IDEA中,登录成功

2021-04-22 16:21:45 4441 6

原创 Linux(5) 组管理和权限管理

Linux(5) 组管理和权限管理学习视频:https://www.bilibili.com/video/BV1Sv411r7vd?p=46&spm_id_from=pageDriver一、组基本介绍Linux下每个用户都必须属于至少一个组;可以属于多个组Linux下的文件都有它的所有者,如tom创建了a.txt,那么a.txt初始所有者为tom,所有者可以更换Linux下的文件有它的所在组,如tom创建了a.txt,那么a.txt初始所有者为tom,所在组为tom所在的组其他组:

2021-04-19 00:13:30 127

原创 Linux(4) 实用指令

Linux(4) 实用指令学习视频:https://www.bilibili.com/video/BV1Sv411r7vd?p=25&spm_id_from=pageDriver一、指令运行级别运行级别相关说明:切换运行级别:init 0 此时会关机(包括虚拟机)普通用户切换级别需要管理员密码:指定运行默认级别获取当前的默认级别:systemctl get-default设置当前的默认级别:systemctl set-default multi-user.target

2021-04-17 14:44:46 171

原创 Linux(3) 用户管理

Linux(3) 用户管理学习视频:https://www.bilibili.com/video/BV1Sv411r7vd?p=19&spm_id_from=pageDriver一、开机、重启、用户登录注销1.关机、重启2.用户登录注销二、用户管理1.基本介绍Linux系统是一个多用户多任务的操作系统。任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入这个系统。2.添加用户一般用户不能创建新用户创建新用户后会在home目录下多一

2021-04-17 14:43:13 91

原创 Linux(2) vi和vim编辑器

Linux(2) vi和vim编辑器学习视频: https://www.bilibili.com/video/BV1Sv411r7vd?p=16&spm_id_from=pageDriver一、基本介绍vi和vim二、vi和vim常用的三种模式三种模式的转换:三、常用快捷键以下快捷键在一般模式下用,即vim Hello.java后进入的界面。yy: 赋值当前光标的一行;nyy:赋值当前光标的n行。如5yy,赋值当前光标的5行。p:粘贴当前赋值的内容dd:删

2021-04-16 10:09:21 89

原创 Linux(1) 目录结构

Linux(1) 目录结构一、Linux文件树linux的文件系统是采用集层式的树状目录结构,根目录是“/”,然后在次目录下再创建其它的目录。树状图:文件图:二、文件目录介绍1、root:在root用户下的家目录就是根目录。#cd /root 进去之后就是root的家目录,你也会看到 ~ 的符号。普通用户的家目录是home文件下建立的以用户名为文件名的文件夹。2、Home:表示“家”,表示除了root用户以外其他用户的家目录,类似于windows下的User/用户目录。3、

2021-04-16 10:08:39 273

原创 Spring boot集成Swagger3

一、导入依赖这里以springfox来使用:SpringFox是 spring 社区维护的一个项目(非官方),帮助使用者将 swagger2 集成到 Spring 中。常常用于 Spring 中帮助开发者生成文档,并可以轻松的在spring boot中使用。swagger3只需要导入一个依赖: <dependency> <groupId>io.springfox</groupId> <artifactI

2021-04-12 17:10:13 5774 1

原创 Spring boot(6) 数据访问

Spring boot(6) 数据访问学习视频:https://www.bilibili.com/video/BV19K4y1L7MT?p=62&spm_id_from=pageDriver1.数据源的自动配置-HikariDataSource1.1 导入JDBC场景 <dependency> <groupId>org.springframework.boot</groupId> <a

2021-04-11 20:36:41 150

原创 MyBatis-Plus 学习笔记

MyBatis-Plus 学习笔记学习官网: https://mp.baomidou.com/guide/一、快速入门1.简介MyBatis的增强工具,在Mybatis的基础上只做增强功能,兼容MyBatis我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。2.快速开始2.1 官方提供的数据库的表创建表:DROP TABLE IF EXISTS user;CREATE TABLE user( id BIGINT(20)

2021-04-10 13:57:39 314

原创 Spring Boot(5) web开发(3)拦截器、文件上传、异常处理

Spring Boot(5) web开发(3)拦截器、文件上传、异常处理学习视频: https://www.bilibili.com/video/BV19K4y1L7MT?p=49&spm_id_from=pageDriver1.拦截器拦截器的三个位置:1.1 实现Interceptor接口/** * @ClassName LoginIntercepor * @Description TODO * @Author deserts * @Date 2021/4/2 10:28

2021-04-08 14:35:11 153

原创 springboot 2.4.4java.sql.SQLException Access denied for user ‘root‘@‘localhost‘ (using password YES)

springboot 2.4.4测试java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)报错报错1:报错2:报错1的内部原因是报错2,原因是yml配置文件错误,配置密码是没有加上引号spring: datasource: url: jdbc:mysql://localhost:3306/bookstore username: root passwor

2021-04-06 18:18:09 132

原创 Spring boot(4) web开发(2) 请求处理、响应处理、模板引擎

Spring boot(4) web开发(2) 请求处理、响应处理、模板引擎参照教程:https://www.bilibili.com/video/BV19K4y1L7MT1.请求映射1.1 rest使用与原理1.1.1 使用Rest风格支持(使用HTTP请求方式动词来表示对资源的操作)以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户现在: /user GET-获取用户 DELE

2021-04-02 16:11:38 300

原创 fonts.googleapis.com加载过慢导致的项目启动过慢的问题

fonts.googleapis.com加载过慢导致的项目启动过慢的问题导入练习项目后发现浏览器加载过慢,一直以为是浏览器缓存问题,结果设置后还是很慢:Spring boot 2.4开启静态资源缓存,最后发现是访问谷歌字体库访问不了,国内有墙,所以想用得下到本地,然后改为本地地址这里只是作为练习,发现360的字体库也用不了,这里就直接注释掉了影响不大,清掉浏览器缓存重新访问就好了总结:以后遇到这种访问的问题应该先看浏览器调试台...

2021-04-01 19:31:13 428 5

原创 自旋锁的实现

自旋锁的实现test-and-set代码:typedef struct lock_t { int flag;}lock_t;void init(lock_t *mutex){ mutex->flag = 0;}void lock(lock_t *mutex){ while(mutex->flag == 1); mutex->flag = 1;}void unlock(lock_t *mutex){

2021-03-31 17:40:16 200

原创 Spring boot 2.4开启静态资源缓存

Spring boot 2.4开启静态资源缓存yml配置:spring: web: resources: cache: cachecontrol: no-store: false max-age: 10000 no-cache: false参数含义:参考博客:浏览器缓存设置

2021-03-30 22:17:00 956

原创 操作系统(5) 并发控制(1)线程的互斥

操作系统(5) 并发控制(1)线程的互斥关键并发术语:**临界区(critical section)**是访问共享资源的一段代码,资源通常是一个变量或者数据结构**竞态条件(race condition)**出现在多个执行线程大致同时进入临界区时,它们都试图更新共享的数据结构,导致了令人惊讶的(也许是不希望的)结果**不确定性(indeterminate)**程序由一个或多个竞态条件组成,程序的输出因运行而异,具体取决于哪些线程在何时运行。这导致结果不是确定的(deterministic),而我们

2021-03-30 00:06:32 256

原创 Spring Boot(3) Web开发(1)静态资源处理

Spring Boot(3) Web开发(1)静态资源处理基于spring boot 2.4.3版本1.静态资源访问1.1 静态资源目录把静态资源放在类路径下的以下目录:/static; /public; /resources; /META-INF/resources;这些目录作为这些静态资源的根目录,如输入http://localhost:8080/4.jpg可直接访问过程:请求进来,先去找Controller看能不能处理。不能处理的所有请求又都交给静态资源处理器。静态资源也找不到则响应4

2021-03-26 16:45:20 701

原创 Spring boot启动The ApplicationContext could not start that is generat

Spring boot启动出现The ApplicationContext could not start as ‘org.springframework.aot.StaticSpringFactories’ that is generated by the Spring AOT plugin could not be found.错误原因:web模块没有加入,加载失败解决:创建项目时加入web模块,即可启动成功可启动成功...

2021-03-26 16:44:01 4103 10

原创 Notepad++集成nasm编译器

Notepad++集成nasm编译器1.下载NASM编译器和Notepad++;2.编写一个汇编程序3.点击图形界面的运行:4.输入运行程序名,其中D:\Environment\nasm\nasm.exe是你nasm编译器存放的位置cmd /k pushd "$(CURRENT_DIRECTORY)" & D:\Environment\nasm\nasm.exe -f bin "$(FULL_CURRENT_PATH)" -o "$(NAME_PART).bin" & PAUS

2021-03-24 23:32:22 893 1

原创 Spring Boot(2) 配置文件

Spring Boot(2) 配置文件学习视频:https://www.bilibili.com/video/BV19K4y1L7MT?p=201.properties语法:同以前的properties用法2.yml2.1 简介AML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。非常适合用来做以数据为中心的配

2021-03-23 23:46:34 69

原创 Spring Boot(1) 入门、自动配置

Hello,Spring Boot1.创建一个普通的maven项目2.pom.xml引入依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version>

2021-03-21 23:46:10 78

原创 x86汇编语言(2) 认识8086处理器

x86汇编语言(2) 认识8086处理器8086的通用寄存器结构如图:由8个通用寄存器组成,每个寄存器之间都可以传送数据,其中AX,BX,CX,DH都可以分成高8位和低8位的寄存器每个寄存器都是16位[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2T7bkgtn-1616146532188)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\image-20210319152820082.png)]AX、B

2021-03-19 17:36:11 386 2

原创 x86汇编语言(1) 汇编语言的前世今生

x86汇编语言(1) 汇编语言的前世今生用电来表示数字导线中的开关有开和关两种状态,计算机使用0和1来表示数字,导线闭合表示1,导线断开表示0所以我们可以用一排导线来表示一个二进制数装上灯泡后,也可以看灯泡的亮暗表示二进制数二进制加法机加法器的结构:两个输入端只要一修改,输出端的结构立马发生改变具有记忆功能的器件——寄存器具有存储功能的触发器的结构说明:左边是输入,下边是锁存开关,当按下锁存开关,右边就会把左边的数据给保存起来,锁存断开后,再修改左边的输入,右边存储的数据也不会发生改

2021-03-19 15:34:50 409

原创 操作系统(4)状态机视角下的程序执行

操作系统(4)状态机视角下的程序执行有限状态机(Finite-state machine, FSM)表示有限个状态在一定的条件下发生某个动作导致从一个状态转换到另一个状态的模型。有限状态机的要素:有限状态机=有向图程序=有限状态机其中,大部分的指令执行结果都是确定,也有少部分的指令执行结果不确定导致会进入多种不确定状态的一种,但状态也是有限的,因为内存能表示的结果也是有限的。不确定的会导致多个后续状态(rdrand和系统调用等)不确定的指令举例:x86-64的例子:

2021-03-18 18:13:27 516

simple-db-hw-2021-master.zip

6个实验都完成了,可能有一些不足,欢迎私信我讨论

2021-11-13

MySQL思维导图.xmind

复习MySQL基础的思维导图,涵盖了DQL语言、DML语言、DDL语言、DCL语言,每一章的小点都详细展开,应有尽有,适合对某些知识点遗忘后复习。

2020-08-03

空空如也

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

TA关注的人

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