- 博客(16)
- 收藏
- 关注
原创 计算机网络复习
TCP也就是传输控制协议,相比于UDP用户数据报协议,TCP是面向连接的,也就是在传输数据之前需要建立连接,并且TCP通过序列号,确认机制,重传机制保证可靠传输,通过流量控制和拥塞控制动态调整发送速率。TCP传输过程大体分为三个阶段,三次握手,传输应用层数据,四次挥手。
2024-10-17 08:22:24 493
原创 算法题:手撕LRU
首先就是数据结构的选择,LRU算法需要一个链表来实现,而题目要求时间复杂度为常数级,那么我们就要用到哈希表,哈希表我们可以选择数组来实现,也可以选择用java封装好的HashSet或HashMap,由于这道题需要用到链表,那么封装好的HashMap难以实现链表功能。数据结构的进一步思考:链表我们用单向还是双向的?由于我们要在常数级删除一个节点,那么我们除了要在常数级找到他,还得在常数级删除他,这里显然需要用双向链表来实现快速删除,这里我们维护两个额外的节点,哑结点(头结点)和尾结点,统一插入和删除操作。
2024-05-25 15:33:35 174
原创 数据库基础:数据依赖关系与四大范式
举个例子:一门物理课可能由多个老师,每个老师又可以使用多本教材,那么这三个属性便构成了多值依赖,其形成的表冗余数据很多,增删改操作也很复杂。关系模式用R(U,F)表示,其中U表示关系模式中所有属性的集合,F表示U上的一组函数依赖;第二范式:消除非主属性对主属性的部分依赖,要求表中的非主属性必须完全依赖于主属性。第三范式:消除非主属性对主属性的传递依赖,即任何非主属性不依赖于其它非主属性。反之,存在x的真子集能够决定y,那么y对x部分函数依赖,在箭头上加p表示。主属性:包含在每一个候选码中的属性。
2024-05-25 09:50:04 294
原创 汇编课设(实现一元二次方程的求解)
上个学期学的汇编语言,结果这学期有一门汇编程序设计课程,真的折磨人,因为汇编知识基本还给老师了(~ ̄(OO) ̄)ブ,说来真的惭愧,这个实验花了我两天半。
2024-04-27 20:00:45 175
原创 mySQL基础二(约束,视图,存储过程与函数)
not null 非空约束unique 唯一约束default … 默认约束,当没有为字段赋值时,使用给定的默认值来赋值primary key 主键约束,唯一且非空的,主键用来唯一标识一条表中的记录,类似与指纹身份证标识人的信息一样check() 检查约束foreign key 外键约束。
2024-04-17 18:00:04 1013 1
原创 MySQL基础(一)
tinyint 1字节smallint 2字节mediumint 3字节int 4字节bigint 8字节所有的整型类型后都可以加unsigned表示无符号数float 4字节double 8字节M是精度,表示一共有多少位,D表示标度,表示有多少小数位,在不指定时,默认(10,0),最大精度65,最大标度30含有精度的计算规则:加减操作结果的精度会取两者精度最大值,乘法操作精度会取两者精度之和char(len)
2024-04-15 21:39:32 575 1
原创 wait()与notify()的底层原理
JVM中每个对象都会有一个监视器(monitor对象),它随着对象一起创建和销毁,监视器的作用便是保护临界区的代码是互斥运行的。重量级锁,wait()方法,notify()方法都是基于它来实现的。
2024-04-14 08:15:00 267
原创 HashMap源码分析
扩容处理:当HashMap中的元素达到当前容量乘以负载因子时便会触发扩容机制,数组长度扩大为原来的两倍并且为已存入的元素重新分配位置, HashMap默认初始容量为16,负载因子为0.75,当我们需要存入较多元素时,可以提前设定初始容量,避免频繁扩容带来的资源浪费。为什么默认负载因子是0.75呢?负载因子表示着当前HashMap中存储元素的最大容量占比,超过这个占比则会出发扩容机制。较高的负载因子能提高空间利用率,但是会出现较多的hash冲突,增加查找成本;
2024-04-09 21:55:25 1186
原创 排序算法详解(java语言)
谈到排序算法,首先就要介绍一下java当中Arrays.sort()方法对于基本数据类型而言,该方法的底层综合了插入排序,归并排序与快速排序,并且做了相关的优化,目的是为了最大化利用各个排序的优点。具体的阈值可以直接看源码,不同的jdk版本中阈值会有较小的差别如果要对实例对象进行排序,则需要其实现了Comparable接口或者传入一个比较器对象。
2024-04-07 10:43:15 272
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人