ByteBuffer 与 DirectByteBuffer 在堆外内存的应用

前置知识堆外内存堆外内存是相对于堆内内存的一个概念。堆内内存是由 JVM 所管控的 Java 进程内存,我们平时在 Java 中创建的对象都处于堆内内存中,并且它们遵循 JVM 的内存管理机制,JVM 会采用垃圾回收机制统一管理它们的内存。那么堆外内存就...

阅读全文



二叉树遍历的实现方式

介绍所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问 题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。二叉树的遍历分为:前序遍历、中序遍历和后序遍历。实...

阅读全文



简单的 LRU Cache 设计与实现

介绍LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:public cl...

阅读全文



SpringBoot 整合 RabbitMQ 实现延时队列

什么是延时队列,延时队列应用于什么场景?延时队列顾名思义,即放置在该队列里面的消息是不需要立即消费的,而是等待一段时间之后取出消费。那么,为什么需要延迟消费呢?我们来看以下的场景网上商城下订单后30分钟后没有完成支付,取消订单(如:淘宝、去哪儿网)系统创...

阅读全文



Java 程序员必备的一些流程图

前言:整理了一些Java基础流程图/架构图,做一下笔记,大家一起学习。1.spring的生命周期Spring作为当前Java最流行、最强大的轻量级容器框架,了解熟悉spring的生命周期非常有必要;spring_life_cycle首先容器启动后,对be...

阅读全文