自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 收藏
  • 关注

原创 操作系统之早期磁盘调度算法 先来先服务(FCFS) 最短寻道时间优先(SSTF) java实现

磁盘调度实验内容:编写一个程序处理磁盘调度中寻道时间的策略。实验目的:磁盘调度中寻道时间直接影响到数据访问的快慢,处理好磁盘寻道时间是关键。实验题目:采用先来先服务策略处理采用最短寻道策略处理实验原理先来先服务(FCFS)优点:公平、简单,每个进程的请求都能依次得到处理缺点:未对寻道进行优化,平均寻道时间较长流程图最短寻道时间优先(SSTF)优点:平均每次磁头移动距离较近;寻道性能比 FCFS 好,但不能保证寻道时间最短缺点:不能保证平均寻道时间最短且有可能引起某些请求的饥

2021-12-17 17:56:21 3344 1

原创 操作系统之虚拟存储管理 java python 实现 最优(Optimal)置换算法 先进先出(FIFO)页面置换算法 LRU(Least Recently Used)置换算法

虚拟存储实验内容:模拟请求分页虚拟存器管理技术中的硬件地址变换、缺页中断以及页式淘汰算法,处理缺页中断。实验目的:清楚认识请求分页管理。最佳(Optimal)置换算法其所选择的被淘汰页面将是以后永不使用的,或许是在最长(未来)时间内不再被访问的页面。采用最佳置换算法,可保证获得最低的缺页率。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aBqPit9W-1639662420975)(虚拟存储.assets/image-20211216091344590.png

2021-12-16 21:55:40 4495

原创 密码学之ElGamal 数字签名 密钥产生 数字签名 验证 python实现

ElGamal 数字签名实验目的通过实验了解数字签名的过程(签名过程和认证过程),掌握 ElGamal签名方案。实验原理ElGamal 数字签名的实现过程1密钥产生:Alice 要对一个消息签名。她选择一个大素数 p 和一个本原根g。选择一个秘密整数1≤x≤p−21\leq x \leq p-21≤x≤p−2,并且计算y≡gxmod  py\equiv g^x \mod py≡gxmodp, (p,g,y)(p,g,y)(p,g,y)公开。x 秘密保存。使得am≡1mod  pa^m\

2021-12-16 00:11:24 2434

原创 密码学之生日攻击 离散对数问题求解 python实现

生日攻击离散对数问题( DLP ) 给定素数 p, α\alphaα, β\betaβ 是模 p 非零的整数,令β=αxmod  p\beta = \alpha^x\mod pβ=αxmodp ,则求 x 的问题称为离散对数问题。生日攻击是一种密码攻击,它利用概率论中生日问题背后的数学原理。攻击取决于随机攻击中的高 碰撞 概率和固定置换次数( 鸽巢原理 )。通过生日攻击,可以在2n=2n/2\sqrt{2^n} = 2 ^ {n / 2}2n​=2n/2中找到哈希函数的碰撞碰撞,其中2n2 ^ {n}2

2021-12-16 00:06:50 1617 1

原创 密码学 实现 DES 的工作模式 电码本模式ECB 密码分组链接模式CBC java 实现

实现 DES 的工作模式一、 实验目的掌握 DES 算法的工作原理;熟悉分组加密算法的工作模式。二、 实验原理DES 的基本原理ppop 其入口参数有三个:key、data、mode。 Key 为加密解密使用的密钥,data 为加密解密的数据,mode 为其工作模式。当模式为加密模式时,明文按照 64 位进行分组,形成明文组, key 用于对数据加密,当模式为解密模式时,key 用于对数据解密。实际运用中,密钥只用到了 64 位中的 56 位,这样才具有高的安全性。分组密码工

2021-12-13 12:44:24 1845

原创 软件安全之Hook 技术 Inline Hook技术应用 TraceMe.exe

Hook 技术实验须知1实验说明Hook 是在指令的关键位置插入特定代码,以干预程序原有的执行流程,实现拦截目标进程运行过程的关键信息改变目标进程原本执行流程等目的。2实验目的本实验使用 Inline Hook 技术,挂钩 [raceMe.exe百度网盘地址(提取码1111)中计算序列号的代码,获取正确的序列号,加深对 Hook 技术的理解。3实验原理HookHook∶中文译作"挂钩"或"钩子",在指令执行的关键位置插入特定代码,以干预程序原有的执行流程,实现拦截目标进程运行过程的关键信

2021-12-12 15:04:31 3254 1

原创 python 生成n个,在一定范围之间的不重叠的随机数 列表实现 集合实现

生成n个,在0-100之间的不重叠的随机数。分别使用列表和集合来实现。列表法实现时核心是判断新生成的随机数是否已经存在于列表中,可以使用 if x not in list进行判断。集合法使用时则不用担心重叠问题,因为集合天然不允许重叠。使用while len(numbers) < n作为while循环的条件,即可生成一组长度为n的不重叠随机数。Notes:向列表中添加元素使用list.append(x),而向集合中添加元素使用set.add(x)import randomdef

2021-12-11 20:04:00 2860

原创 Python 模拟决赛现场最终成绩计算过程 输入数据验证

模拟决赛现场最终成绩计算过程键盘输入:k,n (n>2k), 若不合法,重新输入。首先输入大于3的整数n作为评委人数,输入每个选手的姓名,然后依次输入每个评委的打分,要求每个分数都介于0~100。输入完所有的评委打分后,去掉一个k最高分,去掉一个k最低分,剩余分数的评价分即为该选手的最终得分。最后打印输出各选手的得分情况,并以逆序输出。本程序的核心在于使用try-except做输入数据的检验,只有当输入的数据满足条件才会退出while True循环,当数据不符合规范时便会r

2021-12-11 20:01:55 1451

原创 素数判定 Miller-Rabin 算法的实现 python

素数判定 Miller-Rabin 算法的实现实验目的通过实验掌握 Miller-Rabin 素数判定的算法。实验原理Miller-Rabin primality test | encyclopedia article by TheFreeDictionaryMiller-Rabin 素性测试或 Rabin-Miller 素性测试是一种概率素性测试: 一种判断给定数字是否可能为素数的算法,类似于费马素性检验和 Solovay-Strassen 素性测试。强概要素数:对于一个给定的奇数整数 n &

2021-12-06 18:19:31 1472

原创 软件安全之代码注入技术 向目标 PE 文件注入 DLL notepad lpk.dll 远程线程函数 提权函数 OpenProcess VirtualAllocEx

实验 4 代码注入技术引言1、实验说明代码注入是将用户代码注入到其他进程或者可执行文件中,实现拦截目标进程运行过程的关键信息、改变目标进程或可执行文件原本执行流程等目的2、实验目的本实验通过远程线程和输入表注入,向目标进程注入代码、向目标 PE 文件注入 DLL,以加深对代码注入技术的理解。3、实验原理课程第 6 讲代码注入技术4、实验环境Windows 7 系统、Visual Studio 6.0 及以上版本5、实验内容(1)远程线程注入(2)利用 Detours 实现输入表注入

2021-12-06 13:01:41 3358

原创 Python 猜拳游戏 石头剪刀布

猜拳游戏设置总局数,设置局数,获胜要求得分必须比其高。计算机随机出拳,石头剪刀布游戏,相同则进行下一轮,通过一个字典实现剪刀石头布与123数字对应。当一方得分足够或者总局数耗尽时while循环终止,玩家输入数字对应一出拳,计算机随机生成数字对应一出拳import randomtotal = int(input("请输入总局数:"))if total % 2: # 输入总局数奇数时 flag = int((total + 1) / 2)else: # 输入总局数为偶数

2021-12-05 12:48:12 4558

原创 死锁的避免 银行家算法 java实现

死锁的避免实验内容模拟进程的资源分配算法,了解死锁的产生和避免的办法。实验目的了解系统的资源分配情况,保证进程的资源请求和系统不会出现死锁。实验题目用银行家算法实现资源分配。流程图银行家算法核心流程图安全性检查流程图数据结构及符号说明Proces进程类构造器设置为(String pName, int[] pMax, int[] pAllocation, int[] pNeed)。创建进程时必须有(进程名,最大资源需求向量,已分配资源向量,需要的资源向量)。设置私有变量fini

2021-12-04 19:13:42 1955

原创 Request Python 使用实例 get post

Requestrequests模块urllib模块requests模块requests模块:python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率杉作用:模拟浏览器发请求。使用方式(requests模块的编码流程):指定url发起请求获取响应数据一持久化存储环境安装:pip install requests常规流程import requests# 指定urlurl = 'https://cn.bing.com/'# 发起请求r = requests

2021-11-26 09:43:44 739

原创 软件安全 实验 2 软件动态、静态分析技术 TraceMe.exe OllyDbg IDA

实验 2 软件动态、静态分析技术练习 1 动态调试技术1、实验说明动态分析是在可控环境中运行程序或者模拟程序的执行过程,同时利用分 析工具,监控程序的所有操作,观察其执行流程和状态,获取执行过程中的各 种数据。调试则是一种最为重要的动态分析技术,能够获取程序的真实行为, 以及指令执行过程中各个操作数的具体值。2、实验目的本实验使用 OllyDbg 调试器, 分析简单注册程序(TraceMe.exe),获得正 确的序列号或者修改程序逻辑, 以此学习调试 Win32 应用程序的相关技术。3、

2021-11-25 11:27:21 3477

原创 进程调度 RR 时间片轮转调度 java实现

时间片轮转调度时间片轮转调度策略:在轮转(RR)法中,系统将所有的就绪进程按FCFS策略排成一个就绪队列。系统可设置每隔一定时间(如30 ms)便产生一次中断,去激活进程调度程序进行调度,把CPU分配给队首进程,并令其执行一个时间片。当它运行完毕后,又把处理机分配给就绪队列中新的队首进程,也让它执行一个时间片。这样,就可以保证就绪队列中的所有进程在确定的时间段内,都能获得一个时间片的处理机时间。数据结构和符号说明本次的PCB类数据结构有三个公共变量,五个私有变量,一个标志变量,以及一个时时返回给调

2021-11-19 17:37:51 1341

原创 进程调度 非抢占式优先权调度算法 java实现

非抢占式优先权调度非抢占式静态优先权调度策略:静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变。一般地,优先权是利用某一范围内的一个整数来表示的,例如,0~255中的某一整数,当数值愈大时,其优先权愈低。非抢占式优先权调度:系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。数据结构和符号说明本调度算法的数据结构PCB共包含了四个公共变量``,四个私有变量timeS

2021-11-19 17:28:57 2142 3

原创 作业调度 先来先服务FCFS 短作业优先SJF java实现

作业调度 FCFS SJF java实验内容设计调度算法,模拟实现作业调度。实验目的巩固和加深作业调度的概念。实验题目设计先来先服务调度算法先来先服务(FCFS)调度算法:FCFS是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行时间的长短,从后备作业队列中选择几个最先进入该队列的作业,将它们调入内存,为它们分配资源和创建进程,然后把

2021-11-11 23:59:48 649

原创 Thread线程生命周期 常用方法 java setName setPriority join sleep setDaemon stop

Thread 线程生命周期 常用方法 java生命周期 线程生命周期运行start() : 启动当前线程,表面上调用start方法,实际在调用线程里面的run方法run() : 线程类 继承 Thread类 或者 实现Runnable接口的时候,都要重新实现这个run方法,run方法里面是线程要执行的内容命名setName()设置线程名字getName()获取线程名字Thread.currentThread()Thread类中一个静态方法:获

2021-11-06 00:17:58 116

原创 Thread线程创建三种方式 java 继承Thread类 实现Runnable接口 实现Callable接口

Thread 线程创建三种方式 java继承Thread类线程对象将会开始争抢资源,这个线程要执行的任务要放在方法中并且这个方法不能是随便写的一个方法,必须是重写Thread类中的run方法,线程的任务/逻辑写在run方法中子线程创建public class CT01 extends Thread { @Override public void run() { //子线程输出 System.out.println("Thread-----this is

2021-11-05 17:05:17 138

原创 程序 进程 线程 并发 并行

程序 进程 线程 并发 并行程序(program) : 是为完成特定任务、用某种语言编写的一组指令的集合,是一段静态的代码(程序是静态的)进程(process) : 是操作系统对一个正在运行的程序的一种抽象。在一个系统上可以同时运行多个进程,而每个进程都好像在独占地使用硬件。是程序的一次执行过程,正在运行的一个程序,进程作为资源分配的单位,在内存中会为每个进程分配不同的内存区域, 是一个动的过程 (进程是动态的)进程的生命周期 : 有它自身的产生、存在和消亡的过程。线程(th

2021-11-04 23:38:04 3508

原创 软件安全之动态链接库的使用 Libzplay 播放音乐

实验 1 动态链接库的使用实验说明Libzplay 是遵循 GPL 协议的开源库,它集成了 mp3、flac、ac3、aac、wav等多种音频格式的解码器和编码器,提供了面向 C/C++、C#、Delphi 等多种编程语言的接口,仅需 3 行代码(创建播放资源,打开文件,开始播放)便可实现音乐播放功能。实验目的本实验通过 Libzplay 提供的 C 语言接口,实现简单的音乐播放器,以此学习 DLL 的隐式和显式加载方式。实验原理课程第 2 讲基础知识实验环境Windows

2021-10-26 23:14:05 539 1

原创 密码学之模乘法逆元算法 欧几里得拓展算法 逆元 python java实现

实现模乘法逆元算法一、实验目的通过本实验使学生掌握最大公因子算法的实现、同余类中元素的乘法逆元的求解。二、实验原理本实验的准备知识包括最大公约数、模运算及其基本性质、互素等概念。最大公约数:a和b的最大公约数是能够同时整除a和b的最大正整数,记为:gcd(a,b)或(a,b)。互素的(既约的):满足 gcd(a,b)=1 的 a 和 b。同余(模运算):设整数 a,b,n(n≠0),如果 a-b 是 n 的整数倍(正的或负的),我们就说 a≡b(mod n),读作:a 同余于 b

2021-10-25 22:55:46 1681

原创 数字水印 EMD 魔术矩阵

实验目标1.编程实现EMD魔术矩阵。2.读取载体图像并设计秘密信息。3.设计并实现EMD信息隐藏算法,将秘密信息嵌入载体图像中 。4.提取嵌入的秘密信息。实验步骤01EMD魔术矩阵%% 实现EMD魔术矩阵n=256;m5=zeros(5,5);%先生成5*5的for i=1:5 m5(1,i)=i-1; m5(2,i)=mod(i+2,5); m5(3,i)=mod(i+5,5); m5(4,i)=mod(i+3,5); m5(5,i)=mod(i

2021-10-19 02:10:23 1198

原创 数字水印 基于龟壳魔术矩阵的信息隐藏算法

基于龟壳魔术矩阵的信息隐藏算法实验内容编程实现龟壳魔术矩阵读取载体图像并设计秘密信息设计并实现龟壳信息隐藏算法,将秘密信息嵌入载体图像中提取嵌入的秘密信息。实验步骤编程实现龟壳魔术矩阵%% 生成龟壳矩阵turtmat=zeros(256);turtmat(1,1)=6;%第一行for j=2:256 turtmat(1,j)=mod(turtmat(1,j-1)+1,8);end%第2-256行for i=2:256 if mod(i,2)==0

2021-10-19 01:59:18 659

原创 密码学 对称密码之 RC4 python java 实现

密码学 对称密码之 RC4实验目的理解流密码的概念及相关结构;理解并能够编写基本的流密码体制;熟练应用一种编程语言实现 RC4 密码算法体制。基本原理RC4 算法是一种序列密码体制或称流密码体制,其加密密钥和解密密钥相同 RC4 的密钥长度可变,但为了确保哪去安全强度,目前 RC4 至少使用 128 位的密钥。用 1~256 个字节(8~2048 位)的可变长度密钥初始化一个 256 个字节的状态向量S,S 的元素记为 S[0],S[1],…,S[255],从始至终置换后的 S 包含从 0 到

2021-10-17 15:14:09 369

原创 DLL实验 编程实现斐波那契数列前N项和、阶乘函数 VS

DLL实验编程实现DLL,导出斐波那契数列前N项和、阶乘函数.dll是动态链接库(Dynamic Link Library)的缩写。DLL是一个包含可由多个程序,同时使用的代码和数据的库。可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分创建DLL创建DLL新项目项目名字DLL1,正式创建创建头文件Dll1.h,用于声明需要导出的函数创建源文件Dll.cpp,用来存放源代码​ 同时为了让导出的函数名稳定,添加.def模块定义文件

2021-10-08 16:56:50 482

原创 DLL实验 编程实现斐波那契数列第N项、阶乘函数 CLion

DLL实验.dll是动态链接库(Dynamic Link Library)的缩写。DLL是一个包含可由多个程序,同时使用的代码和数据的库。可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分编程实现DLL,导出斐波那契数列前N项和、阶乘函数DLL部分编写创建DLL项目在CLion中New Project,选择 C Library选择自己的项目路径(以后会用到)Libaray选择shared点击Creat创建编写DLL文件在项目自动新建出的librar

2021-10-06 13:05:51 226

原创 数字水印 LSB信息隐藏算法实验内容(matlab) 嵌入1~3个位平面并提取

LSB信息隐藏算法实验内容(matlab)1.将载体图片分成8个位平面,并显示。2.制作水印图片,可以嵌入1个位平面的、2个位平面的、3个位平面的。3.使用LSB信息隐藏算法,分别嵌入1bit/pixel、2bit/pixel、3bit/pixel,并显示伪装图像。4.提取嵌入的秘密信息。将载体图片分成八个位平面,并显示。载体图片相关代码%% 第一张 风车imgW = imread('7.bmp');imgW=imresize(imgW,0.5);imgWsize=size(

2021-09-21 22:06:28 3903

原创 基于指针的冒泡排序函数

基于指针的冒泡排序函数使用在使用数组排序时,如果我们使用函数,就会面临数据传输的问题:例如其中的交换步骤写成函数,就会存在只在该函数中交换,而无法影响主函数的数值。如果我们不使用指针,那么要想返回多个值就只能使用函数返回map、数组或是封装一个实体类。例如如下的java实现冒泡排序:public class Bubble { public static int[] bubbleArray(int[] arr) { for (int i = 0; i < arr.leng

2021-08-22 21:30:04 816

原创 Java集合之Collections工具类

Java集合之Collections工具类public class Collections extends Object此类仅包含对collection 进行操作或返回collection 的静态方法。 它包含对collection 进行操作的多态算法、“包装器”,它返回由指定collection 支持的新collection ,以及其他一些零碎的东西。如果提供给它们的collection 或类对象为空 null,则此类的方法都将抛出 NullPointerException。此类中包含

2021-08-19 14:51:26 84

原创 java集合之HashMap相关原理 方法

java集合之HashMapMap接口的基于哈希表的实现。 此实现提供所有可选的映射操作,并允许空null值和空null键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同)该类不保证映射的顺序; 特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代collection 视图需要的时间与 HashMap 实例的“容量”(桶的数量)加上它的大小(键-值映射的数量)成比例。 因此,如果

2021-08-19 14:27:46 93

原创 java集合之TreeMap 构造器 方法 比较器

java集合之TreeMap基于红黑树(Red-Black tree)的 NavigableMap 实现。 映射根据其键的自然顺序进行排序,或者通过映射创建时提供的 Comparator 进行排序,具体取决于使用的构造函数。此实现为 containsKey、get、put 和 remove 操作提供有保证的 log(n) 时间成本。 算法是对 Cormen、Leiserson 和 Rivest 的算法导论中的算法的改编。注意,如果要正确实现 Map 接口,则有序映射所保持的顺序(无论是否明

2021-08-19 00:35:18 566

原创 java 集合之Interface Map<K,V> HashMap实现类

java 集合之Interface Map<K,V>类型参数:K- 此映射所维护的键的类型;V- 映射值的类型将键映射到值的对象。 一个映射不能包含重复的键; 每个键最多可以映射到一个值。这个接口取代了 Dictionary 类,后者是一个完全抽象的类而不是一个接口。Map 接口提供了三个 collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。 映射的顺序定义为映射的 collection 视图上的迭代器返回其元素的顺序。 某些映射实现可明

2021-08-18 21:41:00 536

原创 Java 集合之TreeSet 自定义类 比较器

Java 集合之TreeSet基于 TreeMap 的 NavigableSet 实现。 使用元素的自然顺序进行排序,或者通过在集合创建时提供的 Comparator 进行排序,具体取决于使用的构造函数。唯一,无序(没有按照输入顺序进行输出)又有序(按照升序进行遍历)。此实现为基本操作(添加、删除和包含)提供有保证的 log(n) 时间成本。请注意,如果要正确实现 Set 接口,则 set 维护的顺序(无论是否提供了显式比较器)必须与 equals 一致。 (请参阅 Comparable

2021-08-18 13:59:11 745

原创 java 比较器 compareTo compare 内部比较器 外部比较器

比较器 compareTo compare 自定义类 内部比较器 外部比较器int类型比较的思路:将比较的数据做差,然后返回一个int类型的数据,将这个int类型的数值 按照 =0 >0 <0int ai = 10;int bi = 20;System.out.println(ai-bi); // =0 >0 <0StringcompareToint compareTo(String anotherString) 按字典顺序比较两个字符串。两个

2021-08-18 07:31:21 388

原创 java集合之 HashSet LinkedHashSet

HashSet这个类实现了 Set 接口,由一个哈希表(实际上是一个 HashMap 实例)支持。 它不保证 set 的迭代顺序; 特别是它不保证该顺序恒久不变。此类允许 null 元素。假设哈希函数在桶中正确地分散元素,那么这个类为基本操作( add、remove、contains 和 size)提供稳定性能。 迭代这个 set 需要的时间与 HashSet 实例的大小(元素数)和底层 HashMap 实例(桶的数量)的“容量”的和成比例。 因此,如果迭代性能很重要,则不要将初始容量设置

2021-08-17 23:55:35 298

原创 Java 集合之Set接口

Java 集合之Set接口不包含重复元素的集合。 更确切地讲,set 不包含一对e1.equals(e2)的元素 e1 和 e2,并且最多包含一个空元素。 正如其名称所暗示的那样,此接口模仿了数学上的 set 抽象。除了从 Collection 接口继承的那些之外,Set 接口对所有构造函数的协定以及 add、equals 和 hashCode 方法的协定进行了额外的规定。 为方便起见,此处还包括其他继承方法的声明。 (这些声明附带的规范已针对 Set 接口量身定制,但它们不包含任何附加规定。

2021-08-17 23:53:57 113

原创 iterator() Iterator Iterable listIterator

iterator() Iterator Iterable listIterator关系以ArrayList类举例#mermaid-svg-sYcXKoDw7ZntMhht .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-sYcXKoDw7ZntMhht .label text{fill:#333}#merm

2021-08-17 17:56:11 78

原创 java 集合之LinkedList 构造器 方法 遍历方法 listIterator

java 集合之LinkedListList 和 Deque 接口的双向链表实现。 实现所有可选的列表操作,并允许所有元素(包括空值)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。实现 Deque 接口,为 add、poll 提供先进先出队列操作,以及其他堆栈和双端队列操作。所有操作都是按照双重链接列表的需要执行的。在列表中编索引的操作将从开头

2021-08-17 16:41:26 759

原创 java 泛型 定义 类 方法 通配符 泛型受限

java 泛型定义泛型(Generic)就相当于标签形式:<> ,Collection<E>, List<E>, ArrayList<E>这个<E>就是类型参数,即泛型。除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此把元素的类型设计成一个参数,这个类型参数叫做泛型。集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型

2021-08-17 15:41:02 266

空空如也

空空如也

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

TA关注的人

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