- 博客(233)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 mysql总结
脏读强调当前事务读取了另一个事务未提交的数据,后面两种问题都是基于 事务只能读取到另一个事务提后的数据 为前提:幻读强调增删insert delete,即记录数量会发生改变,不可重复读强调改update,即记录内容改变了幻读:一个事务前后两次查询同一个范围的数据时,后一次查询出现新的一行数据根据MySQL官网的描述,幻读是“相同的查询在不同时间返回了不同的结果两次查询中,后一次多出来的行就是所谓的“幻影行”rr通过 MVCC 方式解决了快照读(普通 select 语句)类型的幻读。
2025-09-11 20:07:57
738
原创 java+jvm笔记
升级顺序:锁就是线程进入时要拿要等待的东西,其实就是monitorenter和monitorexit两条jvm指令同步方法通过flags设置为ACC_SYNCHRONIZED来实现,底层本质还是调用了monitorenter和monitorexit两条jvm指令(所以有人说这种是隐式调用)java对象在JVM的c++层面其实也是用一个对象来表示,其在堆内存中存储的布局可分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充。Markword 是保存锁状态的关键,对象锁
2025-03-02 22:46:58
1193
原创 llama2.c推理
主要思想就是通过缓存之前的注意力结果以及只挑当前时间步的Q来计算注意力减少计算量。每个时间步t只需要算当前词Wt对W1~t的注意力,因此只需要用当前词的Qt和K1~t以及V1~t即可求出最终的下一个向量的表示,此时再拼接到之前W1~t-1的向量表示即可。temperature=0(确定性)的时候,模型推理每次都取概率最大的(从而导致同样的输入prompt会有完全相同的输出);不需要考虑任何mask问题,直接通过矩阵计算求出下三角矩阵每个元素的值即可,不需要额外添加mask之类的。本文的代码基于第一种理解。
2023-12-01 16:09:21
521
原创 matlab快速入门(学习笔记,图片加少量文字解释)
数值数据三个点在结尾表示连着下一行继续写整型uint8函数转换为无符号8位整数,int8函数转换为带符号8位整数class()函数获取数据类型single()函数与double()函数复数直接6+8i,跟平常写数学一样默认双精度format输出格式默认为short矩阵名字可以为其他,不一定就是aexp()e的x次方,填入的数是x三角函数sin()和sind()以角度为单位sin后面加个d即可求绝对值,复数的模,字符串的ascii码abs()round
2020-06-30 15:48:21
1263
1
原创 tcp、http、https
RST一般出现于异常情况,归类为对端的端口不可用和socket提前关闭。端口不可用:要么是这个端口从来就没有"可用"过,比如根本就没监听(listen)过;要么就是曾经"可用",但现在"不可用"了,比如服务突然崩了。socket提前关闭:某端读缓冲区还有内容没读取给应用层就调用了close,那么此时会清空读缓冲区并发送RST给对端。
2025-09-20 22:25:20
770
原创 从0到1红黑树
红黑树其实就是 234 树。只要把 234 树中的多值节点(3 、 4)拆成单节点,把多叉树拆成二叉树,就变成了红黑树。在 234 树里面,本来就是绝对平衡的,所以你在红黑树里,把红色分叉给提上去(或者不算红色这一层),就是 b 树意义上那种绝对平衡(所有路径只看黑节点的深度相同)的了。只是拆成二叉树以后(红节点多占一层),看着平衡度差了一点(若从根节点出发到叶子节点最短的一条路径为n,则最大深度差为n),但也正因为放宽了平衡度的要求(AVL绝对平衡),效率高了很多。
2025-02-17 11:15:51
729
原创 adaboost从0到1
是集成学习中的一种具体方法,用于解决二分类问题集成学习就是说通过结合多个学习器来完成任务,而adaboost的想法就是通过结合多个弱学习器比如逻辑回归这种比较简单的学习器来完成任务,这样的效果往往比一个强学习器还要好,毕竟三个臭皮匠顶一个诸葛亮不是问题,一般来说这里的多个弱学习器都是同一种学习器,比如都是逻辑回归,当然也可以不同。
2025-02-17 11:05:48
859
原创 布隆过滤器
要判断某一个元素是否存在于某个集合中,比如想知道1是否存在于数组a中,那么没必要遍历每一个元素进行比较,布隆过滤器把非常大概率存在于集合中的元素过滤出来,理论上。
2025-02-17 11:00:10
294
原创 java动态代理
Override//开始逻辑处理return "买了个锤子";/*** 需要增强的目标对象*//*** 获取代理类* @return*//*** 该方法用于为指定类装载器、一组接口及调用处理器生成动态代理类实例* 第一个参数指定产生代理对象的类加载器,需要将其指定为和目标对象同一个类加载器* 第二个参数要实现和目标对象一样的接口,所以只需要拿到目标对象的实现接口。
2025-02-14 14:47:16
786
原创 Tomcat本质
然后开始利用刚刚解析完得到的HttpRequest分析请求的URL,如果是在web.xml中能够匹配到URL有对应的Servlet映射,那就是请求动态资源即Servlet处理,这个只需要从Servlet容器即servletMap中取出对应Servlet,然后调用该Servlet的service方法并传入前面实例化的HttpRequest和HttpResponse即可(service内部进行HttpResponse报文响应体的填充及发送);
2024-01-25 17:08:13
373
原创 transformer训练与推理
以下transformer基于中译英任务数据集原本的目标语言标签dec添加完padding后,如果在dec前面加一个S构成了dec_input,而如果在dec后面加一个E构成了dec_output(输出的标签)
2023-11-24 20:22:42
3583
原创 jnu复试面试
从形式上看,自反 、反自反、 对称、 反对称与传递是对关系内元素之间相等性的约束。自反、反自反是对有序对内元素是否存在相同的约束;对称、反对称是两个有序对之间内容是否相同;传递是多个有序对之间是否存在中间相同要素。从含义上看,自反、 对称与传递是对相等的细化。自反考虑的是自己与自己之间是否在某种关系上相同,如同名、同类、同内容等关系都是自反关系,因为自己与自己的肯定同名、同类、同内容。
2023-03-28 17:34:59
133
原创 感知机从0到1
感知机干嘛用的感知机是一种监督算法好像单层的感知机相当于单层的神经网络通过输入的数据和对应的标签来训练一组权重w和b对输入的特征向量进行二分类或者说判断,比如要判断一个人帅不帅,输入特征向量可以是(身高,体重,五官评分,气质评分),然后感知机会根据以前训练的结果告诉你这个人帅不感知机模型模型的数学定义模型为:希望通过以下的fx函数进行二分类感知机模型的几何意义这里的w向量相当于确定了一个超平面的法向量,b是截距,所以找到一组好的w和b相当于要找到一个好的超平面将两类数据分好类损失函数
2022-06-07 21:43:31
262
原创 kmeans从0到1
kmeans在干什么聚类,就是你给我一堆数据,我能帮你把相近的数据分成一类,最终得到很多个类如下图,kmeans会帮我们把左边的点分成一类,右边的点分成一类,前置知识说白了监督学习和现在大部分的深度学习一样,需要训练样本并且一通训练后能推测或判断新的一个输入,而无监督学习比如pca,kmeans,不需要喂数据,直接给我什么我就处理什么数据标准化具体流程我们告诉kmeans需要分成多少类,然后他会任意选择k个样本数据作为初始的聚类中心,接着他会计算每个样本到k个聚类中心的距离,然后把该样本
2022-06-07 18:59:01
231
原创 pca从0到1
如上图,把X矩阵看成列向量组,则1/(m-1)XtX结果就是协方差矩阵,该矩阵的第i行第j列代表X矩阵中的第i列与第j列之间的协方差基变换如下图,橙色坐标系和黑色坐标系的基不同,那么怎么根据v在橙色坐标系的坐标计算v在黑色坐标系下的坐标呢,其实就是计算v在黑色坐标系的各个基上的投影如下图,总结一句话就是:基w为单位向量时,向量v在基w下的投影是二者内积当想要把m个具有n维特征的样本降维,可以直接样本矩阵右边乘一个基变换矩阵A,其中A的每一列是新的基且为单位向量,如下图,样本矩阵维度从n降到了..
2022-06-07 17:12:11
277
原创 springboot批量插入优化
循环插入耗时1207msjdbcTemplate的batchUpdate方法耗时814ms字符串拼接插入耗时150ms没有了循环生成对象的步骤,也不必每次insert都建立网络,而是只需要一次网络,对于我这种每次只插入10个单词的app来说最好了,响应贼快...
2022-04-21 16:06:37
938
原创 小程序this.setData
每当我们尝试在wx.request的success回调函数中使用this.setData总会说setData undefined,这时候我联想到之前学的promise,对于wx.request而言,参数是{}即花括号里的是对象,对象中的success方法就类似于之前promise的resolve,即向url请求成功后就会调用success方法而this是 谁调用谁就是this所指对象,这里显然是wx.request调用了,所以this不再是Page的this,也就没有setData方法了var pro.
2022-04-16 21:21:03
818
原创 js原型和原型链
静态成员和实例成员静态变量或者静态方法直接 类名.XX=,即可声明感觉比java严格,java的静态变量可以被类和对象访问,原型构造函数的函数名就是类名,如果要用构造函数法生成对象,那么可以把这个构造函数看成java中类的构造函数,即都是只有函数名,只是说不需要像java那样先声明public class XX,但与java在类中直接声明成员变量不同,js把成员变量和成员方法的声明放到构造函数里。(注意:js 中的函数其实是对象,函数名是对 Function 对象的引用。)但构造函数里最好是只有
2022-04-11 22:37:33
379
原创 js-变量
在 ES6 之前,JavaScript 只有两种类型的作用域:全局作用域和函数作用域。ES6 引入了两个重要的 JavaScript 新关键词:let 和 const这两个关键字在 JavaScript 中提供了块作用域(Block Scope)变量(和常量)全局作用域全局(在函数之外)声明的变量拥有全局作用域。实例var carName = "porsche";// 此处的代码可以使用 carNamefunction myFunction() { // 此处的代码也可以使用 car
2022-04-08 20:41:28
1220
原创 从0到1学习SVM
凸集定义设K是n维欧式空间的一点集,即任意两点X,Y(均属于K)的连线上所有点aX+(1-a)Y仍属于K,(a属于0-1)通俗理解借用一张图,如下,若点集中任取两点,它们所连成的线段上的点仍属于该点集,则为凸集为什么就是这么定义呢为什么说aX+(1-a)Y所生成的点就是在X和Y的连成线段之间呢根据aX+(1-a)Y=Y+a(X-Y)画图后就懂了更为严谨的证明凸优化问题定义待解函数为凸函数,约束是一个凸集kkt条件作用使用条件一个凸优化问题,满足slater条件,则必有强对偶
2022-01-21 14:57:13
608
原创 时间复杂度
最好时间复杂度:当前数组满足该算法的某些需求时,所能达到的最优,之前我以为是一个排好序的数组用该算法所需要的时间比如 快速排序 的最好时间复杂度即每次partition都能选取到一个刚好在中间的base,这样数组就会不断被分成两段,类似于二分法,最终时间复杂度为nlogn最坏时间复杂度继续以快排为例,如果每一次的base都选到最小的,则相当于没有左分支,只剩下一个贼大的右分支,长度为n-1,经过递归计算,时间复杂度为n²平均时间复杂度以快排为例,比较麻烦,我总结一下就是每种划分方法占同样概率
2021-12-21 15:15:31
307
原创 数据库SQL需要注意的语法
not in 是 “<>all”的别名,用法相同。语句in 与“=any”是相同的。null算数运算含null结果也null比较运算含null结果unknownisis仅用于is null和is not nullnot对于not而言,也只有is not null,其余都不需要is的,直接where tableX not…即可集合同样有交并差,分别是intersect,union,except...
2021-12-16 21:39:59
926
原创 数据库七章-范式
函数依赖多元组R中(元素都是属性),属性a一旦确认,则b也相应被确认了,即一个a唯一地对应一个b根据函数依赖定义超码和候选码即只要某属性组能唯一确认一行,就可看做超码如果属性组没有冗余(去掉任一个属性就不能唯一确认一行),就看做候选码平凡的函数依赖b本来就是a的子集,能被推出来也就没什么用了,所以平凡函数依赖集的等价性属性集的闭包Canonical Cover 最小覆盖/规范覆盖一个函数依赖集的最小覆盖不是唯一的分解无损分解一个关系r相当于一张二维的表按照定义,
2021-12-16 16:36:53
1054
原创 数据库E-R图与关系模式图
E-R图无外键E-R图记忆三大基本点实体实体集实体相当于对象,实体集相当于类实体集属性复合属性,像树一样,根节点是该复合属性,子节点是复合属性分解后的属性多值属性,用大括号{xxx}衍生属性,后面加个小括号()关系的属性如图,关系也可以有额外的属性,记录老师什么时候开始指导某学生弱实体集映射基数就是描述这段关系是一对多还是多对一,多对多,一对一如下图,advisor是二者的关系,一个导师指导多个学生,所以是一对多的关系,一方有箭头,多方无参与答案是A,B
2021-12-16 14:41:02
6822
2
原创 关系代数快速回忆一遍
基础像6一样的符号是取符合后面条件的行,如果像π一样就是取列如下图最后面是表与表的笛卡尔积,比如下图连接就看下面两个式子就行,instructor与teaches先笛卡尔积,然后挑出二者id相同的数据项,下面是新的写法自然连接自动找到r和s的所有同名属性,先笛卡尔积然后挑出同名属性完全一样的行左外连接,右外连接,全外连接集合并当且仅当二者拥有完全一样的属性交同上要求不同r-s前面有而后面没有的前面成立而后面不成立的相当于r-r∩s...
2021-12-16 13:37:45
803
原创 数据库一章-设计
DDL和DMLDDL:数据定义语言,一般对表本身操作的都是DML:数据操控语言,增删改查数据的三层抽象数据库设计一般概念设计是设计E-R图逻辑设计是把E-R图映射成关系模式图数据库的使用者...
2021-12-15 21:10:23
288
原创 数据库十八章-并发控制
并发控制 的两个方法:二段锁协议 和 时间戳协议二段锁协议The Two-Phase Locking Protocol简称2PL有什么锁某个事务对某个数据项拥有共享锁(shared lock),则可读某个事务对某个数据项拥有排他锁(exclusive lock),则可读也可写多个事务可以同时拥有某个数据项的共享锁只要某个数据项被锁(无论是共享锁还是排他锁),其他事务再次申请排他锁就必须等只要某个数据项被排他锁 锁住,其他事务再次申请任何锁都要等协议有什么用可以保证调度是冲突可串行化调度
2021-12-14 16:41:55
545
原创 数据库十九章-恢复系统
恢复算法:前提只有checkpoint日志中的active-list包含的事务,以及在checkpoint日志后面开始启动的事务 需要参与到恢复算法先找到最近的一个条checkpoint日志然后,从checkpoint日志开始往下遍历,如果某个事务Ti没有对应的<Ti,commit>或者<Ti,abort>,则执行undo操作----也就是根据<Ti,X,Old,New>日志把Old重新赋值给变量X,同时写入日志<Ti,X,Old>,把某个事务的所有
2021-12-14 13:51:10
404
原创 数据库十七章-事务
调度:指令执行的顺序串行调度:事务一个个按顺序执行并发调度:事务的指令穿插执行可串行化:某个调度能有办法与某个串行调度等价,则该调度即为可串行化调度冲突:两条相邻指令分别属于两个事务,处理同一个数据,且这两条指令中起码有一个在写冲突等价:某个调度通过交换不冲突的指令,得到的新调度与原调度冲突等价冲突可串行化:某个调度通过交换不冲突的指令,能得到一个串行调度,则该调度即为冲突可串行化可恢复调度:X和Y是相邻两条指令,如果 Y 读了 X 修改过的数据,那么在 X commit后,Y 才能commi
2021-12-14 00:31:09
446
原创 隐藏注释和输出注释
输出注释就是html的注释,形如<!–content–>隐藏注释就是jsp的注释,形如<%–content–%>被称为输出,就是因为这种注释所包括的内容,会出现在jsp翻译成servlet的代码中,也就是说真的被out.print出来,这样客户端收到的内容也是含有注释的,只不过不需要执行那部分被称为隐藏,就是因为这种注释所包括的内容,不会出现在jsp翻译成servlet的代码中,也就是根本不会被out.print...
2021-12-01 17:10:14
1022
原创 Integer中==和equals的区别
前提首先明确,==比较值是否相等,这是永远不变的,引用变量除去基本类型之外,那些各种类(应用类型)变量本质都是指针,String str;中的str就是一个指针,或者说是一个 存放地址的空间的记号,这就是所谓的引用变量,在栈中会分配空间给这种引用变量,引用变量使用==比较既然是比较值,那么Integer a=new Integer(5);Integer b=new Integer(5);ab在这里相当于比较两个new Integer(5)对象的地址是否相等Integer缓存机制(全文重点)
2021-12-01 00:13:17
987
8583 顺序栈的基本操作.cpp
2020-04-29
如何理解siamrpn++论文中padding破坏平移不变性
2021-09-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅