摘要:如何理解“队列”? 队列这个概念非常好理解。你可以把它想象成排队买票,先来的先买,后来的人只能站末尾,不允许插队。先进者先出,这就是典型的“队列”。我们知道,栈只支持两个基本操作:入栈 push()和出栈 pop()。队列跟栈非常相似,支持的操作也很有限,最基本的 操作也是两个:入队 enqueue
阅读全文
摘要:浏览器的前进、后退功能,我想你肯定很熟悉吧?当你依次访问完一串页面 a-b-c 之后,点击浏览器的后退按钮,就可以查看之前浏览过的页面 b 和 a。当你后退到页面 a,点击前进按钮,就可以重新查看页面 b 和 c。但是,如果你后退到页面 b 后,点击了新 的页面 d,那就无法再通过前进、后退功能查看
阅读全文
摘要:内存分布 数组需要一块连续的内存空间来存储,对内存的要求比较高。如果我们申请一个 100MB 大小的数组,当内存中没有连续的、足够大的存储空间时,即便内存的剩余总可用空间大于 100MB,仍然会申请失败。而链表恰恰相反,它并不需要一块连续的内存空 间,它通过“指针”将一组零散的内存块串联起来使用,所
阅读全文
摘要:数组是非常基础的数据结构,对于绝大多数的开发者来说,这个应该是入门就会接触到的一种数据结构,并且使用起来也非常的简单方便。 概念 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 提炼一下关键点,首先是线性表,其次是连续内存空间的相同类型数据。 线性表
阅读全文
摘要:LinkedBlockingQueue 在看源码之前,通过查询API发现对LinkedBlockingQueue特点的简单介绍: 1、LinkedBlockingQueue是一个由链表实现的有界队列阻塞队列。2、新元素插入到队列的尾部,队列获取操作则是从队列头部开始获得元素3、大小默认值为Integ
阅读全文
摘要:阻塞队列概要 阻塞队列与我们平常接触的普通队列(LinkedList或ArrayList等)的最大不同点,在于阻塞队列的阻塞添加和阻塞删除方法。 阻塞添加所谓的阻塞添加是指当阻塞队列元素已满时,队列会阻塞加入元素的线程,直队列元素不满时才重新唤醒线程执行元素加入操作。 阻塞删除阻塞删除是指在队列元素
阅读全文
摘要:CountDownLatch 1 前言 CountDownLatch是一种同步辅助工具类,它允许一个或多个线程等待,直到在其他线程中执行的一组操作完成为止。(源码分析基于JDK1.8) CountDownLatch需要用给定的闩锁计数count初始化。await方法使当前线程阻塞(每执行一次coun
阅读全文
摘要:公平锁和非公平锁 ReentrantLock 默认采用非公平锁,除非你在构造方法中传入参数 true 。 public ReentrantLock() { sync = new NonfairSync(); } public ReentrantLock(boolean fair) { sync =
阅读全文
摘要:在使用springboot过程中,一般都会设置全局异常管理,如下: import com.yzf.enterprise.market.common.constant.HttpStatus; import com.yzf.enterprise.market.common.exception.BaseE
阅读全文
摘要:ThreadLocal是什么? ThreadLocal是啥?以前面试别人时就喜欢问这个,有些伙伴喜欢把它和线程同步机制混为一谈,事实上ThreadLocal与线程同步无关。ThreadLocal虽然提供了一种解决多线程环境下成员变量的问题,但是它并不是解决多线程共享变量的问题。那么ThreadLoc
阅读全文
摘要:kafka的高可用 一、高可用的由来 1.1 为何需要Replication 在Kafka在0.8以前的版本中,是没有Replication的,一旦某一个Broker宕机,则其上所有的Partition数据都不可被消费,这与Kafka数据持久性及Delivery Guarantee的设计目标相悖。同
阅读全文
摘要:硬件配置对Kafka性能的影响 磁盘吞吐量/磁盘容量 磁盘吞吐量会影响生产者的性能。因为生产者的消息必须被提交到服务器保存,大多数的客户端都会一直等待,直到至少有一个服务器确认消息已经成功提交为止。也就是说,磁盘写入速度越快,生成消息的延迟就越低。 磁盘容量的大小,则主要看需要保存的消息数量。如果每
阅读全文
摘要:本文转载自:透彻的掌握 Spring 中@transactional 的使用 事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编码式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体业务逻辑与事务
阅读全文