一。LRU算法简介LRU(Least Recently Used)最近最久未使用算法常见应用场景:内存管理中的页面置换算法、缓存淘汰中的淘汰策略等 二。实现理论  底层结构:双向链表 + HashMap ,双向链表由特定的哈希节点组成。 (1)访问节点时,将其从原来位置删除,插入到双向链表头部; (2)更新节点时,先删除原有缓存数据(即原有节点),然后更新map
文章目录一、常用开发环境二、安装 Visual Studio 2019三、Visual Studio 2019 开发环境介绍四、使用 Visual Studio 2019 开发 C 程序 为什么会突然写关于 C 语言系列的博客? 原因是笔者的一个弟弟在大一下学期即将开始学习 C 语言,这里回忆起了当时笔者大学时学习 C 语言的时候,举步维艰,一言难尽。但是在期末考试的时候还是能以 90 多分取得
转载 10月前
56阅读
文章目录一、项目说明1.1 项目目标1.2 项目平台与技术栈1.3 项目功能二、项目演示2.1 进入题目列表页2.2 进入题目详情页2.3 编写代码2.4 提交运行三、系统流程(核心)四、系统设计4.1 执行指令设计4.2 编译和运行设计4.3 读写文件的设计4.4 数据库设计4.5 JDBC工具类4.6 题目增删查的设计4.6.1 查4.6.2 增4.6.3 删4.7 题目信息API4.7.1
转载 2023-09-11 20:33:06
52阅读
和 TCP 相反,UDP 协议是无连接协议。客户端发出 UDP 数据包后,只能“假设”这个数据包已经被服务端接收。这样的好处是在网络传输层无需对数据包进行确认,但存在的问题就是为了确保数据传输的可靠性,应用层协议需要自己完成包传输情况的确认。此时,QUIC 协议就登场了。QUIC 是 Quick UDP Internet Connections 的缩写,谷歌发明的新传输协议。与 TCP 相比,QU
转载 2023-09-19 07:32:02
100阅读
 一、Java思维导图二、I/O模型 I/O模型的本质是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。 Java共支持三种网络编程模型:BIO、NIO、AIO BIO:同步并阻塞,服务实现模式为一个连接一个线程,即客户端有一个连接请求时,服务端就需要启动一个线程进行处理。 NIO: 同步非阻塞,服务器实现模式为一个线程处理多个请求连接,即客户端发送的请求都会注册到多
转载 2023-07-20 21:12:15
42阅读
又学一招,来自组织的微信群如果.bashrc 无法保存,解决方案删掉.swp删掉.bashrc.bak就OKconda查看当前环境下,都安装了哪些软件conda list发现有一篇很好的介绍文章还有一篇进入正题,AWK前一段时间,看到好多生信组的童鞋不远千里的坐小火车去学习awk,觉得不是很理解。直到最近自己要准备各种文件,才觉得此乃神器,必须掌握以下摘抄自别人awk [-F|-f|-v] ‘BE
转载 2023-09-25 18:23:32
57阅读
Java的I/O模型java在JDK中提供了三种I/O模型,一类是最原始也是我们用得最多最熟悉的阻塞I/O模型BIO,使用InputStream和OutputStream进行读写操作。第二种是jdk1.4之后的NIO,相比起BIO在性能上无疑是一个巨大的提升,NIO的应用场所主要是在网络上,因为相比起CPU,内存,硬盘的处理速度,网络差了太多太多,所以在开发网络应用时,使用BIO模型,处理器大多数
转载 2023-07-20 16:44:47
50阅读
LRU 缓存LRU 是什么?最近最少使用算法。一个队列,将最近使用的元素放到队列的头部,当队列长度不够时,移除队列的最后一个元素,也就是最近最少使用的元素。解法 1:继承 LinkedHashMap 投机取巧解法(最好还是自己实现),利用 Java 的 LinkedHashMap 已经实现好的方法,所以直接继承 LinkedHashMap 为父类即可。有兴趣可以自己阅读 LinkedHashMap
转载 2024-06-13 17:57:57
24阅读
Serializable接口实现序列化和反序列化实例首先需要明确的概念: 序列化:将数据结构或对象转换成二进制字节流的过程 反序列化:将在序列化过程中所生成的二进制字节流的过程转换成数据结构或者对象的过程 持久化:将数据写入文件中长久保存的过程称之为持久化 序列化主要目的:是通过网络传输对象或者说是将对象存储到文件系统、数据库、内存中。序列化反序列化实例:1.创建一个学生类实现Serializab
一.概念LRU(last recently use,最近最少使用)算法是一种内存管理的算法。它的基本思想是:最近使用的页面数据会在未来一段时期内仍然被使用,已经很久没有使用的页面很有可能在未来较长的一段时间内仍然不会被使用。利用它可以筛选热点数据,当缓存达到最大值时,可以进行缓存淘汰。二.LRU的实现:利用双向链表实现2.1 构造链表节点每个节点有键值,并有前后节点。/** * 构造一个节点
转载 2024-06-24 19:42:28
69阅读
1. 把10进制转成N进制:除N取余,逆序排列这里逆序排列使用StringBuilder类的reverse()函数来实现。/** * 10进制整数转换为N进制整数。 10进制转换为N进制的方法是:这个10进制数除以N,求出余数,并把余数倒叙排列。 除N取余,倒叙排列 * @param tenRadix * 十进制整数 * @param radix *
转载 2024-06-12 16:17:32
25阅读
什么是AOP?        AOP即面向切面编程,能够让我们在不影响原有功能的情况下,对程序进行横向扩展,面向切面?横向扩展?第一次接触这两个词的时候我也是一脸懵逼。       说说我的理解:如果现有某个类的某个方法是已经封装好的,现在我们需要在执行这个方法的时候加点自己的东西,对原方法的执行进行干预。当然要求是不
学生模块功能比较少,就是进行考试和查看自己成绩两个大的功能。学生进行考试的功能比较复杂(首先做了校验,不在考试时间范围内,不能进行考试)考试试题是数据库根据发布考试时的条件随机产生的一套试题。因为每次考试题型题量都是不同的,因此我们继续采用JSON的格式去保存数据,当状态为1:表示正在考试;状态为2:表示已经考试结束;状态为3:表示老师已经阅完试卷(1)当考试考试的时候,会给考上随机产生一套试题,
转载 2024-08-20 21:05:06
28阅读
条件编译绝对是一个好东西。如在C或Cpp中,可以通过预处理语句来实现条件编译。代码如下: #IFDEF DEBUG #UNDEF DEBUG #ENDIF #define DEBUG #IFDEF DEBUUG /* code block 1 */ #ELSE /* code block 2 */ #ENDIF 但是在JAVA中却没有预
转载 2023-08-23 10:42:06
76阅读
1. Apriori算法思想   对于Apriori算法,我们使用支持度来作为我们判断频繁项集的标准。Apriori算法的目标是找到最大的K项频繁集。这里有两层意思,首先,我们要找到符合支持度标准的频繁集。但是这样的频繁集可能有很多。第二层意思就是我们要找到最大个数的频繁集。比如我们找到符合支持度的频繁集AB和ABE,那么我们会抛弃AB,只保留ABE,因为AB是2项频繁集,而ABE是3项频繁集。那
转载 2023-08-18 10:23:12
54阅读
前言:本篇主要用于梳理NIO的相关知识,诸如缓冲区、通道、文件锁、选择器,附带的会说一下IO的知识,因为在某些地方NIO会用到它们。鉴于NIO已经出来甚久,本文旨在总结知识与交流学习,同时若能给他人带来一点帮助,那也是一份意外收获。1、IO (java.io.*)在前面的两篇博客Java之IO流—字节流、Java之IO流—字符流,我们详细的梳理了字节流与字符流的体系与使用细节,并没有对他们两者做一
转载 2023-12-26 08:47:04
41阅读
笔试的时候一般都需要自己写输入输出,为了尽可能减少因为格式问题而爆0这种委屈之事,我在此以牛客网OJ为例总结了常见的6种典型情况输入描述的模板。希望可以帮助到广大考友把更多的精力放在解题思路上。逻辑代码写到while循环里1. 输入是已知大小的二维数组输入描述第一行是一个正整数n,表示二维数组有n行n列。public static void main(String[] args) { Scanne
文章目录前言一、接口二、实现接口1.类实现接口2.重写接口中的方法3.有关借口的细节说明3:接口回调4:接口与动态5:接口参数5:abstract类与接口的比较总结 前言接口是JAVA与C#独有的一种数据类型,通过关键字interface来声明。一、接口Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实
转载 2023-08-29 22:25:22
34阅读
LRU(Least Recently Used:最近最少使用):简单的说,就是保证基本的 Cache容量,如果超过容量则必须丢掉最不常用的缓存数据,再添加最新的缓存。每次读取缓存都会改变缓存的使用时间,将缓存的存在时间重新刷新。其实,就是清理缓冲的一种策略。 我们可以通过双向链表的数据结构实现 LRU Cache,链表头(head)保存最新获取和存储的数据值,链表尾(tail)既为最不常使用的值,
转载 2024-05-31 13:08:36
29阅读
 概要前面分别介绍红黑树的理论知识、红黑树的C语言和C++的实现。本章介绍红黑树的Java实现,若读者对红黑树的理论知识不熟悉,建立先学习红黑树的理论知识,再来学习本章。还是那句老话,红黑树的C/C++/Java实现,原理一样,择其一了解即可。目录1. 红黑树的介绍2. 红黑树的Java实现(代码说明)3. 红黑树的Java实现(完整源码)4. 红黑树的Java测试程序转载请注明出处:更
转载 2023-06-28 10:39:30
34阅读
  • 1
  • 2
  • 3
  • 4
  • 5