自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

未命名

重剑无锋,大巧不工

  • 博客(68)
  • 收藏
  • 关注

原创 Hibernate 初始配置

创建数据库DROP DATABASE if exists hibernate;create database hibernate charset=utf8mb4;use hibernate;create table user( id int auto_increment primary key, name varchar(10), gender varchar(10), age int, birthday date)Maven 导入<?xml

2021-05-10 22:50:53 707 7

原创 计算机网络——网络层(一)

文章目录网络层概述网络层概述从发送主机向接受主机传送数据段发送主机

2021-04-09 09:15:29 322

原创 HashMap笔记

综述(官方文档翻译):HashMap是基于哈希表的Map接口实现。该实现提供了所有可选的映射操作,并允许null值和null键。(HashMap类大致等同于Hashtable,不同的是它是不同步的,并且允许为空。) 这个类不保证映射的顺序;特别是,它不能保证顺序随时间保持不变。这个实现为基本操作(get和put)提供恒定的时间性能,假设散列函数将元素适当地分散在存储桶中。迭代集合视图需要的时间与HashMap实例的“容量”(桶的数量)加上它的大小(键-值映射的数量)成比例。因此,如果迭代性能很重要,那么

2021-04-09 09:11:33 211

原创 renren-fast-vue遇到的坑

最初下载的14.x版本,经过很长时间才发现依赖的不兼容,使用的node.js版本为10.16.3 运行成功,node.js这个版本帝已经更新到 15.x了…在安装node.js之前提前安装好python 2,并设置好环境变量,如果原先有python3要保证 shell 运行 python 时是 python2所有的环境变量要设置好更改环境变量后要重启shell如果出现这种情况(不止这一个vue):发现找不到vendor 这个目录,解决办法:在报错中的那个目录即:\node_modules\n.

2021-01-22 01:16:35 617

原创 NS3 安装(Ubuntu 环境)

前言参考官方文档英语不行开谷歌翻译问题也不大的先决条件(Git 安装)sudo apt-get install g++sudo apt-get install python3sudo apt-get intall git若已安装会有如下结果使用 Git 下载源代码在用户目录下创建 workspace 目录,下载完成后保存在../workspace/ns-3-allinonecdmkdir workspacecd workspacegit clone https://gitla

2020-06-25 18:47:26 527

原创 计算机网络——传输层(二)

文章目录TCPTCP 概述TCP 可靠数据传输TCPTCP 概述点对点一个发送方,一个接收方可靠的、按序的字节流流水线机制TCP 拥塞控制和流量控制机制设置窗口尺寸发送方 / 接收方缓存全双工同一连接中能够传输双向数据流面向连接通信双方在发送数据之前必须建立连接连接状态只在连接的两端中维护,在沿途节点中并不维护状态。流量控制机制TCP 段结构TCP:序列号和 ACK序列号指的是 segment中第一个字节的编号,而不是 segment 的编号

2020-06-10 01:10:07 193

原创 计算机网络——传输层(一)

文章目录概要传输层服务和协议多路复用和多路分用(分解)分用无连接分用面向连接的分用UDP概要理解传输层服务的基本理论和基本机制复用 / 分用可靠数据传输机制流量控制机制拥塞控制机制掌握 Internet 的传输层协议UDP:无连接传输服务TCP:面向连接的传输服务TCP 拥塞控制传输层服务和协议传输层协议为运行在不同主机上的应用进程提供了一种逻辑通信机制。端系统运行传输层协议发送方:将应用递交的消息分成一个或多个 Segment,并向下传给网络层接收方:将接

2020-06-03 21:36:56 281

原创 计算机网络——应用层(一)

文章目录应用层协议原理网络应用体系结构客户机/服务器结构(C/S)服务器客户机举例点对点结构(P2P)混合结构(Hybrid)应用举例:Napster网络应用进程通信进程间通信套接字:Socket应用层协议应用层协议的内容网络应用的需求与传输层服务数据丢失 / 可靠性(可靠数据传输)时间 / 延迟带宽安全性典型网络应用对传输服务的要求Internet 提供的传输服务Web 与 HTTPHTTP协议概述HTTP 连接HTTP 消息格式请求消息HTTP 方法HTTP 响应消息HTTP 响应状态代码CookieC

2020-06-01 00:50:56 309

原创 计算机网络——应用层(二)

文章目录Web 与 HTTPHTTP协议概述HTTP 连接HTTP 消息格式请求消息HTTP 方法HTTP 响应消息HTTP 响应状态代码CookieCookie 的组件Cookie 的原理Cookie 的作用Web 缓存 / 代理服务器技术条件GETEmail 应用Email 应用的构成:SMTP 协议SMTP 协议总结Email 消息格式邮件访问协议POPIMAPDNSDNS 概述DNS 工作机理概述分布式层次式数据库DNS 根域名服务器TLD 和权威域名解析服务器本地域名解析服务器DNS查询示例例题D

2020-06-01 00:50:19 1280

原创 文件使用磁盘的实现

sys_write()file_write()create_block()盘块记录在inode->izonem_inode(设备文件)总结

2020-05-28 14:24:03 226

原创 生磁盘到文件,目录与文件系统

键盘是输入设备,所以键盘中断处理程序里面对应着inb。

2020-05-27 20:54:27 384

原创 IO与显示器、键盘

外设的工作:外设的寄存器的地址、内容格式都不统一,操作系统要给用户一个简单的视图方便管理 ——文件视图驱动外设概括起来就是:创建文件视图,CPU向外设发出指令(out指令),外设执行完毕后发出中断,再读数据到内存。一段操纵外设的程序在 linux 中一切设备皆文件。文件视图printf()wirte()是系统调用,调用sys_write(),传入参数为文件指针fd等于一,为显示,以及缓冲区buf。系统初始化时init()打开了终端设备,dup()是复制,tty0是终端设备。o.

2020-05-27 16:49:42 438

原创 内存管理

计算机如何工作?将程序进入内存C函数编译成汇编程序后,执行:1.

2020-05-27 00:45:23 211

原创 二分法:leetcode 704 . 二分法模板,35.搜索插入位置,74.搜索二维矩阵,240.搜索二维矩阵 II

704.二分查找class Solution { public int search(int[] nums, int target) { if(nums.length == 0) return -1; int start = 0; int end = nums.length - 1; int mid; while(start + 1 < end) { mid = s

2020-05-26 01:02:52 156

原创 死锁处理

若将执行顺序换成红字的顺序:Producer:执行P(mutex) mutex 1->0执行P(empty) empty 0->-1 阻塞Consumer:执行P(mutex) mutex 0->-1,阻塞Producer 脱离阻塞需要先执行Consumer: V(empty),在执行之前又依赖于P(full),P(full)的执行需要 Consumer 脱离阻塞,Consumer 脱离阻塞需要执行Producer: V(mutex),执行Producer: V(mute.

2020-05-25 18:12:53 226

原创 进程同步与信号量、信号量临界区保护、信号量代码实现

生产者-消费者实例当生产者发现 counter == BUFFER_SIZE 生产者等待(阻塞)当消费者发现 counter == 0 消费者等待(阻塞)存在问题:只用counter做判断,在图中情况下会导致P2不会被唤醒。应该需要另一量(信号量)考虑记录有多少进程阻塞等信息,并进行判断。信号量当 sem < 0表示 sem 有多个进程在等待当 sem > 0 表示有空闲B,有2个资源可以使用信号量的定义queue代表阻塞队列V()的模型:V(semapho

2020-05-25 17:03:47 352

原创 CPU的调度和schedule()

目录CPU调度策略调度算法:First Come, First Served(FCFS),先来先服务缩短周转时间:短作业优先(SJF)缩短响应时间:时间片轮转调度算法的选择:一个实际的 schedule() 函数`counter`第一个作用:时间片`counter`第二个作用:优先级`counter`总结CPU调度策略CPU调度即在就绪队列中,通过调度选择下一个执行的任务。调度算法:尽快结束任务:周转时间(从任务进入到任务结束)短用户操作尽快响应:响应时间(从操作发生到响应)短系统内耗时间少

2020-05-23 21:17:12 1609

原创 内核级线程实现

进入中断在 main()中:首先在A()函数中系统调用fork(),将B()的地址压入用户栈。fork() 引起中断0x80,进入内核。执行int 0x80时,还未进入内核,首先找到内核栈,压入当前栈地址(即用户栈);压入当前CS:IP(用户态)(ret = CS:IP)进入内核,执行system_call。进入内核刚进入内核,首先在内核态中的各种寄存器压到栈中,即保护现场。执行sys_fork(),继续向下执行state(%eax)相当于state + _curre

2020-05-21 14:34:46 640 1

原创 用户级线程和内核级线程

用户级线程一个浏览器的模型:两个执行序列与一个栈的弊端:Yield()是一个切换函数,在线程切换中,我们需要像Yield()这样的函数允许B->C->D并直接返回 ->B,否则只能逐层调用返回,这不是线程切换想要的结果。这种情况如果我们希望用Yield()从D返回到B,即直接跳转到204,但当函数返回时(ret指令),我们发现此时栈已经乱了,ret将会导致意外,会使程序跳转到404.从一个栈到两个栈如果使用两个栈,那么我们自然需要在Yield()中切换栈,把栈顶指针存入

2020-05-19 01:21:17 421

转载 Java中getClassLoader().getResource()和getResource()的区别

区别主要如下:.getClass().getResource(fileName) :表示只会在当前调用类所在的同一路径下查找该fileName文件;.getClass().getClassLoader().getResource(fileName):表示只会在根目录下(/)查找该文件;fileName如果是前面加“/”,如"/fileName",则表示绝对路径,取/目录下的该文件;如果是...

2020-04-21 13:38:17 184

原创 四:进程运行轨迹的跟踪与统计

目录实验目的实验内容实验步骤打开log文件预备:Linux 的进程初始化打开 log 文件写log文件寻找状态切换点预备:Linux 的进程运行状态进程的新建(N)及由新建(N)切换到就绪(N)状态实验目的掌握 Linux 下的多进程编程技术;通过对进程运行轨迹的跟踪来形象化进程的概念;在进程运行轨迹跟踪的基础上进行相应的数据统计,从而能对进程调度算法进行实际的量化评价,更进一步加深对调...

2020-04-15 23:11:56 765

原创 三、系统调用及实验

保护机制:将内核程序与用户隔离特权级特权级检查系统调用进入内核的方法系统调用的核心实现保护机制:将内核程序与用户隔离特权级处理器有硬件设计的保护机制,共4个特权级(0级到3级)。数值越大,权限越低。 可以用圆环表示为:为了检测特权级,有三种值:当前特权级 CPL(Current Privilege Level)。这是CPU当前执行程序或任务的特权级。存放在 CS 和 SS 寄存器的...

2020-03-17 13:47:55 368

原创 LeetCode 413.等差数列划分

如果[1,2,3,4,5,6]是一个等差数列,则以A[2]结尾的等差数列 [1,2,3] 以A[3]结尾的等差数列 [1,2,3,4],[2,3,4] 以A[4]结尾的等差数列[1,2,3,4,5],[2,3,4,5],[3,4,5]以A[5]结尾的等差数列 [1,2,3,4,5,6],[2,3,4,5,6],[3,4,5,6],[4,5,6]设f[i]以A[i]为结尾的等差数列的...

2020-03-10 21:46:00 101

原创 二、操作系统的引导及实验

本实验课程是通过在一个小Linux(Linux 0.11)上针对操作系统的各个模块开展的深入实践,同时本课程也是为网易云课堂李治军老师《操作系统之基础》、《操作系统之进程与线程》等四门课程的配套实验课。

2020-03-06 00:50:15 1222 1

原创 实验一: 配置HIT-oslab实验环境

慕课网: http://www.feemic.cn/mooc/icourse163/1002692015#。百度云链接:https://pan.baidu.com/s/1h2aEk6A_DGpXkZvRtNmeUw 提取码:qoll配套实验课:https://www.shiyanlou.com/courses/115实验楼自带linux实验环境,但因为我曾经装了vmware+ubuntu ...

2020-02-29 19:18:51 2520 5

原创 LeetCode 44.通配符匹配

LeetCode 44.通配符匹配确定状态:和10题很类似,因为’.’和’?’作用相同,但是这题中’*’可以匹配0个或多个任意字符情况1:如果B[n-1]是一个正常字符(非?非*),则如果A[m-1]=B[n-1],能否匹配取决于A[0..m-2]和B[0..n-2]是否匹配;否则不能匹配。情况2:如果B[n-1]是?,则A[m-1]一定是和?匹配,之后能否匹配取决于A[0..m-...

2020-02-28 21:40:58 136

原创 LeetCode 10.正则表达式匹配

LeetCode 10.正则表达式匹配双序列型动态规划确定状态:设A长度为m,B的长度为n如果B[n-1]是一个正常字符(非.非*),则如果A[m-1]=B[n-1],能否匹配取决于A[0..m-2]和B[0..n-2]是否匹配;否则不能匹配如果B[n-1]是.,则A[m-1]一定是和.匹配,之后能否匹配取决于A[0..m-2]和B[0..n-2]是否匹配如果B[n-1]是*,...

2020-02-27 23:41:40 132

原创 LeetCode 115.不同的子序列

LeetCode 115.不同的子序列双序列型动态规划确定状态:类似于LCS的思路,以最后一步的T为出发点。情况1:T[n-1]=A[m-1],则求T[0..n-2]在S[0..m-2]中出现多少次情况2:T[n-1]!=S[m-1],则不考虑S[m-1],求T[0..n-1]在S[0..m-2]中出现多少次-状态:设f[i][j]为T前j个字符T[0..j-1]在S前i个字符S[0...

2020-02-27 19:06:27 139

原创 LeetCode 72.编辑距离

LeetCode 72.编辑距离双序列型确定状态:设f[i][j]为A前i个字符A[0..i-1]和B前j个字符B[0..j-1]的最小编辑距离。有三种情况:A在最后插入B[j-1]A的最后一个被替换为B[j-1]A删掉最后一个字符A和B最后一个字符相等转移方程f[i][j] = min{f[i][j-1]+1, f[i-1][j-1]+1, f[i-1][j]+1, f[...

2020-02-25 21:12:03 92

原创 LeetCode 97.交错字符串

LeetCode 97.交错字符串双序列型动态规划确定状态:判断s1(长度为m),与s2(长度为n)是否交错生成s3(长度为p)若m+n!=p,直接返回falses3[k]不是等于s1[i-1]就是等于s2[j-1]k=i+j-1状态:设f[k][i][j]为s3中前k个字符是否由s1中前i个字符或s2中前j个字符组成。其中,k=i+j-1,优化为f[i][j]转移方程:...

2020-02-23 16:50:26 199

原创 LeetCode 1143.最长公共子序列

LeetCode 1143.最长公共子序列(LCS)双序列型确定状态:设字符串为s1和s2,长度分别为m和n。此时LCS长度为l存在三种情况:s1[i]此时不在LCS中,是多余的s2[j]此时不在LCS中,是多余的s1[i]==s2[j],此时l=l+1状态:设f[i][j]为s1前i个字符和s2前j个字符的LCS长度转移方程:f[i][j]=max{ f[i-1][j]...

2020-02-23 15:36:14 208

原创 LeetCode 322.零钱兑换

LeetCode 322.零钱兑换确定状态:设f[n]为当金额为n时的硬币数。最后一步:遍历所有硬币面值,存在一枚面值i的硬币使得f[n-i]最小转移方程:f[i]=min{f[i−coins]+1}f[i]=min\{f[i-coins]+1\}f[i]=min{f[i−coins]+1}class Solution { public int coinChange(int[]...

2020-02-21 21:01:57 139

原创 LeetCode 343.整数拆分

LeetCode 343.整数拆分确定状态:设f[n]为整数之间和为n的最大乘积。要求f[n],一定存在一个整数i使得f[n-i]*i最大但是并不只是一种情况,还有一种可能,整数其本身比拆分后的乘积大: 即取(n-i)*i。转移方程:f[i]=max1<j<i{f[n−i]∗i,(n−i)∗i}f[i]=max_{1<j<i}\{f[n-i]*i,(n-i)*i...

2020-02-21 20:53:16 158

原创 LeetCode 312.戳气球

LeetCode 312.戳气球说明:你可以假设 nums[-1] = nums[n] = 1,但注意它们不是真实存在的所以并不能被戳破。0 ≤ n ≤ 500, 0 ≤ nums[i] ≤ 100动态规划确定状态:分析: 所有N个气球被扎破最后一步: 一定有一个最后一个被扎破的气球编号为i。扎破i时,左边是气球0(nums[-1]),右边是气球n+1(nums[n]),获得金币1...

2020-02-20 17:56:12 163

原创 LeetCode 87.扰乱字符串

LeetCode 87.扰乱字符串给定一个字符串 s1,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树。注意题目描述: 不一定是从中间等分。动态规划确定状态:设两个字符串分别为T 和S,题目求判断一个字符串T是否可以由S经过题意中的变换而成。因此,首要前提是T和S的长度相等。按照题意,S会被分解为S=S1+S2,同理,T=T1+T2。若满足S可变换为T则会有以下两种...

2020-02-19 16:48:25 210

原创 LeetCode 221.最大正方形

LeetCode 221.最大正方形确定状态:正方形的理解:如图所示,对于每个位置(i,j),其能确定最大的正方形边长,其实是(i-1,j-1),(i-1,j),(i,j-1)三个位置的最大正方形的边长最小值(类比于:木桶的短板理论,AOE图中的关键路径)。状态: 设f[i][j]为所在位置最大正方形的边长。转移方程:f[i][j]=min{f[i-1][j-1],f[i-1][j]...

2020-02-17 23:43:14 155

原创 LeetCode 516.最长回文子序列

LeetCode 516.最长回文子序列区间型动态规划确定状态:最优策略产生的最长回文子串是T,长度M。情况一:回文串长度为1,即一个字母。情况二:回文串长度大于1,那么必定有T[0]=T[M-1]设T[0]是S[i],T[M-1]是S[j],剩下的T[1...M-2]仍然是回文串,而且是S[i+1...j-1]的最长回文子串。状态: 设f[i][j]为S[i..j]的最长回文子串的...

2020-02-15 19:15:03 181

原创 LeetCode 5.最长回文子串的三种解法

LeetCode 5.最长回文子串直接使用中心扩展判断回文串,具体方法在:LeetCode 132.分割回文串II再从大到小枚举长度,若区间[i,j+1)为回文串,输出。class Solution { private boolean[][] judge(char []ch) { int m=ch.length; boolean [][]f=n...

2020-02-15 19:14:28 165

原创 LintCode 125.背包问题II

LintCode 125.背包问题II背包问题确定状态:对于每个总重量,我们知道对应的最大价值是多少,就能知道答案。最后一步: 最后一个物品:(重量:AN−1重量:A_{N-1}重量:AN−1​,价值:VN−1V_{N-1}VN−1​)是否进入背包。情况一: 如果前N−1N-1N−1个物品能拼出WWW,最大总价值是VVV,前NNN个物品也能拼出WWW并且总价值是VVV情况二: 如果前...

2020-02-13 18:29:44 278

原创 LeetCode 377.组合总和IV

LeetCode 377.组合总和IV执行用时 :2 ms, 在所有 Java 提交中击败了90.17%的用户背包问题:注意:我们需要求出有多少个组合的和是Target,组合中的数字可以按不同的顺序:1+1+2与1+2+1算两种组合确定状态:如果最后一个物品重量是A0A_0A0​, 则要求有多少种组合能拼成Target–A0Target – A_0Target–A0​如果最后一个物品...

2020-02-12 23:12:26 123

空空如也

空空如也

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

TA关注的人

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