![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Java架构师课代表
java架构大数据每天分享干货
展开
-
ES中的动态映射和动态模板
为了方便演示和切换 ES 地址,在 ~/.bashrc 中添加如下变量和脚本: ES=localhost:9200 escurl () { curl -H 'Content-Type: application/json' "$@"; } 复制代码 Elasticsearch 具有非常强大的动态性和灵活性,例如当向一个不存在的索引添加文档时,会自动创建该索引,例如: $ escurl -XPUT $ES/my_article/doc/1?pretty -d ' { "title": .原创 2020-10-10 16:37:47 · 1241 阅读 · 1 评论 -
字节的面试题到底有多难?大厂为何都注重算法?
文章的开头大家先来看一看一道字节的算法题,看是否能做出来: 给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助) 大家有没有一脸懵逼的感觉?(我也不会) 曾经有个说法,程序=数据结构+算法。这在面向过程的编程语言流行的年代是很受推崇的。 然而,随着时代的发展,各种编程语言的出现,各种编程模式的发明,面向对象、设计模式、框架、模型等各种概念出来之前那个说法已经.原创 2020-09-30 12:41:36 · 255 阅读 · 0 评论 -
高性能无锁并发框架Disruptor,太强了
Disruptor是一个开源框架,研发的初衷是为了解决高并发下队列锁的问题,最早由LMAX提出并使用,能够在无锁的情况下实现队列的并发操作,并号称能够在一个线程里每秒处理6百万笔订单 官网:lmax-exchange.github.io/disruptor/ 目前,包括Apache Storm、Camel、Log4j2在内的很多知名项目都应用了Disruptor以获取高性能 为什么会产生Disruptor框架 「目前Java内置队列保证线程安全的方式:」 ArrayBlockingQueue:基于原创 2020-09-19 20:13:47 · 717 阅读 · 0 评论 -
ArrayList源码学习
List是一个线性结构的容器,其中实现类ArrayList底层是一个Object数组,它可以根据元素个数自动扩容,也使用到了泛型。相比于List的另一个实现类LinkedList:底层是一条链表。 ArrayList具有数组的优点:可以根据数组下标直接访问元素。但是由于数组大小不可更改,所以ArrayList在增加元素、删除元素时会有额外的复制数组的开销。 LinkedList是一条链表,它没有下标,在查找元素的时候,总是从表头开始寻找,效率较低,但是增加、删除元素的时候,只需要更改几个指针的指向就可以原创 2020-09-14 14:41:55 · 126 阅读 · 0 评论