上一篇文章主要讲了netty的read过程,本文主要分析一下write和writeAndFlush。 主要内容 本文分以下几个部分阐述一个java对象最后是如何转变成字节流,写到socket缓冲区中去的 pipeline中的标准链表结构 一个标准的pipeline链式结构如下 数据从head节点流入 ...
分类:
Web程序 时间:
2019-09-16 11:59:58
阅读次数:
101
List、Set介绍 java.util.ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快 java.util.LinkedList 集合数据存储的结构是链表结构。方便元素添加、删除的集合 java.util.LinkedHashSet ,它是链表和哈希表组合的一个数据存储结构。 ...
分类:
其他好文 时间:
2019-09-01 12:35:13
阅读次数:
91
编写一个程序,找到两个单链表相交的起始节点。 注意: 如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。 思路:题目要求用O(n)的时间复杂度: 1.两链表一同遍历,如果pA遍历结 ...
分类:
其他好文 时间:
2019-08-27 23:33:58
阅读次数:
182
1. HashMap的内部实现原理是什么? HashMap内部实现原理是数组+链表,通过散列算法将key值散列到数组中,如果到相同的位置,则通过拉链法解决散列冲突。在JDK8中新增了红黑树结构,当HashMap中的散列冲突链表结构超过8个数据时,会从链表结构转换为红黑树结构。 2. HashMap的 ...
分类:
编程语言 时间:
2019-08-19 12:50:27
阅读次数:
80
1. HashMap的内部实现原理是什么? HashMap内部实现原理是数组+链表,通过散列算法将key值散列到数组中,如果到相同的位置,则通过拉链法解决散列冲突。在JDK8中新增了红黑树结构,当HashMap中的散列冲突链表结构超过8个数据时,会从链表结构转换为红黑树结构。 2. HashMap的 ...
分类:
其他好文 时间:
2019-08-19 00:20:23
阅读次数:
105
首先是LRU的定义,LRU表示最近最少使用,如果数据最近被访问过,那么将来被访问的几率也更高。 所以逻辑应该是每次都要将新被访问的页放到列表头部,如果超过了list长度限制,就将列表尾部的元素踢出去。 主要结构,STL中的双向链表结构list。 主要操作有get,表示访问key对应的value,此时 ...
分类:
其他好文 时间:
2019-08-18 23:40:44
阅读次数:
116
freeRTOS中的链表结构: 对链表的插入删除操作可参见源码中的list.c。 任务的定义与切换: main()函数里面顺序执行的无限循环,在这个循环中,CPU按照顺序完成各种操作。 多任务系统中,根据功能的不同,把整个系统分割成一个个独立的且无法返回的函数,这种函数就被称为任务。 多任务系统中, ...
分类:
其他好文 时间:
2019-08-08 20:52:25
阅读次数:
88
虽说对于二叉树的遍历操作来说非递归法使用用户自定义的栈来代替递归使用时的系统栈,可以得到不小的效率提升,但将二叉树线索化时能将用户栈也省略掉进一步提高了效率。 对于二叉树的链表结构,n个结点的二叉树有n+1个空链域(每个叶节点都有两个空链域),而线索二叉树就把这些空链域有效的利用了起来,在一般的二叉 ...
分类:
其他好文 时间:
2019-08-04 01:06:20
阅读次数:
85
编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 示例 2: 示例 3: 注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O(n) 时间复杂度,且仅用 O( ...
分类:
编程语言 时间:
2019-07-30 18:54:18
阅读次数:
117
LinkedList是用链表结构存储数据的,比较适合数据的动态插入和删除,随机访问和遍历速度比较慢,还提供了List接口i中没有定义的方法,专门用于操作表头和表尾的元素,所以可以当作堆栈、队列和双向队列来使用。LInkedList持有头节点和尾节点的引用,有两个构造器,一个是无参构造器,另一个是传入 ...
分类:
其他好文 时间:
2019-07-29 23:05:09
阅读次数:
273