单链表结构的缓冲区溢出攻击 代码环境是有一个8字节的缓冲区,和一个指向下一个结构体的链表,程序在构造完成链表后,有两次复写链表值的操作,利用这两次值的覆盖,第一次缓冲区溢出覆盖到下一个链表的指针为0018FEE8,在PE里事先做好了通用跳板的地址0x7798d7b,利用通用跳板,在程序执行到main ...
分类:
其他好文 时间:
2020-06-03 10:48:45
阅读次数:
74
LinkedList的源码分析LinkedList的数据结是双向链表,因为是链表结构,所以LinkedList更加适用于增删频繁而查询修改不频繁的场景,其适用场景和ArrayList有一些相反的。
分类:
编程语言 时间:
2020-05-28 18:09:46
阅读次数:
76
一、链表的概念: 链表将每个对象存放在独立的节点中,每个节点还存放着序列中下一个节点的引用。在Java中,所有链表实际上都是双向链接的——即每个节点还存放着指向前驱节点的引用。 双向链表结构如下所示: 二、链表的特点: 获取数据慢,需要遍历查找;插入和删除快,只需要修改前后的链接。 三、单链表的实现 ...
分类:
编程语言 时间:
2020-05-26 19:52:53
阅读次数:
52
1、HashMap底层的实现 JDK 1.7 中 HashMap 是以数组+链表的形式组成的 JDK 1.8 之后数组+链表/红黑树的组成的,当链表大于 8 并且容量大于 64 时,链表结构会转换成红黑树结构,链表长度过长,影响性能,红黑树具有快速增删改查的功能 JDK1.中HashMap的几个重要 ...
分类:
编程语言 时间:
2020-05-13 23:18:11
阅读次数:
62
/** java.util.LinkedList集合 实现了List接口* LinkedList集合的特点:* 1.底层是一个链表结构:链表的特点是:查询满,增删快* 2.包含了许多特有的方法:所以使用LinkedList方法时 不使用多态的好* 多态的缺点:不能使用子类特有的方法,要使用子类的** ...
分类:
其他好文 时间:
2020-05-12 17:17:19
阅读次数:
56
链表及顺序表都属于线性表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 链表:链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连 ...
分类:
其他好文 时间:
2020-05-10 20:47:34
阅读次数:
66
List类型的存储结构——底层是双向链表结构 一、List类型数据基本操作 添加/修改数据 lpush key value1 value2 #从左边一个个插入 rpush key value2 value2 #从右边一个个插入 获取数据 lrange key start stop #start和st ...
分类:
其他好文 时间:
2020-05-10 13:02:25
阅读次数:
63
循环链表 单链表的局限性:如果不从头结点出发,就无法访问的全部节点。 循环链表定义:将单链表终端结点的指针由空指针改为指向头结点;使单链表形成一个环,称单循环链表,简称循环链表 注:循环链表不一定有头结点。 ...
分类:
其他好文 时间:
2020-05-03 00:42:24
阅读次数:
58
栈: 目录: 1、栈是什么 2、实现栈 2-1、使用数组模拟栈 2-2、使用单链表模拟栈 2-3、实现栈全部源码 3、使用栈实现简易计算器 3-1、步骤 3-2、源码 4、使用后缀表达式完成计算器实现 4-1、前缀表达式 4-2、中缀表达式 4-3、后缀表达式 4-4、实现 4-4-1、步骤 4-4 ...
分类:
其他好文 时间:
2020-04-29 14:20:44
阅读次数:
82
浅谈LinkedList LinkedList是一个链表结构类型的列表,底层通过链表结构来存储数据的链式存储,可以无限链接新元素(受限于硬盘存储容量),不存在ArrayList(底层使用数组实现)中的数组扩容问题,具有插入,删除元素快捷、方便的特点,但因为每个节点需要有上一个节点和下一个节点的引用, ...
分类:
其他好文 时间:
2020-04-19 15:02:10
阅读次数:
64