1.什么是数组? 数组是一种线性的数据结构.它同一组连续的内存空间,来存储一组具有相同类型的数据。 简单说明几点: (1).线性表:就是数据排成像一条线一样的结构。每个线性表的数据最多只有前和后两个方向。除了数组,链表,队列,栈等也是线性表结构。 对立的是非线性表,比如二叉树,堆,图等之所以被称为非 ...
分类:
编程语言 时间:
2019-10-11 01:21:28
阅读次数:
106
1.栈的原理 后进先出(LIFO-last in first out):最后插入的元素最先出来,是一种“操作受限”的线性表,只允许在端插入和删除数据 2.栈的实现 顺序栈:用数组实现,顺序栈需要动态扩容,在初始化时需要给定一个固定大小的数组,当栈大于固定大小时需要扩充数组的大小。 链式栈:用链表实现 ...
分类:
编程语言 时间:
2019-09-27 22:49:21
阅读次数:
112
JavaSE阶段性测试1:手写线程池需求需求背景:由于频繁的自行创建和销毁线程非常的消耗资 源,并且难以控制线程的并发数量,所以项目组急需编写 一个线程池功能,能够自行管理线程的生命周期,并且根 据繁忙线程池程度对池中线程进行动态扩容。现在项目经理抽象出线程池对象中包含有几个主要特性 1. 可以根据 ...
分类:
编程语言 时间:
2019-09-24 23:03:24
阅读次数:
180
1、数据结构 ArrayList底层使用数组实现,默认大小10,容量不足时需动态扩容为原来的1.5倍 LinkedList底层使用双向链表实现,无大小限制 2、使用场景 ArrayList使用数组对于索引操作即(set get方法)时间复杂度为O(1) 而LinkedList索引时需要从头遍历从而找 ...
分类:
其他好文 时间:
2019-09-16 23:43:50
阅读次数:
109
一、 Hadoop集群动态扩容、缩容 随着公司业务的增长,数据量越来越大,原有的datanode节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。也就是俗称的动态扩容。 有时候旧的服务器需要进行退役更换,暂停服务,可能就需要在当下的集群中停止某些机器上hadoop的服务 ...
分类:
其他好文 时间:
2019-09-14 19:25:13
阅读次数:
278
前言:作为一个常用的List接口实现类,日常开发过程中使用率非常高,因此有必要对其原理进行分析。 注:本文jdk源码版本为jdk1.8.0_172 1.ArrayList介绍 ArrayList底层数据结构是数组(数组是一组连续的内存空间),默认容量为10,它具有动态扩容的能力,线程不安全,元素可以 ...
分类:
其他好文 时间:
2019-09-14 17:08:50
阅读次数:
105
List 和 Set 区别? List,Set 都是继承自 Collection 接口。 List 特点:元素有放入顺序,元素可重复。 Set 特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉。 注意:元素虽然无放入顺序,但是元素在 Set 中的位置是有该元素的 hashcode 决定的,其位置 ...
分类:
编程语言 时间:
2019-08-20 23:47:21
阅读次数:
129
Stack 后进先出 使用数组实现的叫顺序栈 使用链表实现的叫链式栈 顺序栈的实现代码 对于顺序栈 ,栈满了之后需要动态扩容 使用均摊分析法,入栈的时间复杂度为O(1) 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 使用两个栈 Map: ...
分类:
编程语言 时间:
2019-08-18 19:41:24
阅读次数:
119
一、HP-lefthand的特点HP-lefhand是一款非常不错的SAN存储,使用iscsi协议为客户端分配空间。它支持RAID5、RAID6以及RAID10。并且还支持卷快照,卷动态扩容等。常见的型号有:P4500,P4300,P4000等,基于市场占有量和软件定义存储的弊端,有一定的数据恢复市场需求。HP-lefhand的存储系统是一款嵌入式LINUX系统,需要安装客户端软件才能配置left
分类:
其他好文 时间:
2019-07-30 12:27:30
阅读次数:
116
35.Arraylist 的动态扩容机制是如何自动增加的?简单说说你理解的增加流程! 解析: 当在 ArrayList 中增加一个对象时 Java 会去检查 Arraylist 以确保已存在的数组中有足够的容量来存储这个新对象,如果没有足够容量就新建一个长度更长的数组(原来的1.5倍),旧的数组就会 ...
分类:
其他好文 时间:
2019-07-12 09:35:26
阅读次数:
114