实现LRU缓存

z 发布于 2023-08-17 17:47
什么是LRU缓存? LRU缓存(Least Recently Used)是一种常用的缓存淘汰算法,它根据数据的使用时间来决定哪些数据需要被移除。这种算法假设最近使用的数据会在未来一段时间内继续被使用,而很久没有使用的数据则可能在未来很长时间内不会被使用。 实现 LRU淘汰机制的基本原理是,当缓存已满,需要插入新的数据时,它会选择最近最少使用的数据进行移除,从...
标签: 学习 算法

序列化框架Avro的使用

z 发布于 2023-07-29 16:08
序列化框架Avro的使用 介绍 Avro是Hadoop的⼀个⼦项⽬,由Hadoop的创始⼈Doug Cutting(也是Lucene,Nutch等项⽬的创始⼈)牵头开发。Avro是⼀个数据序列化系统,设计⽤于⽀持⼤批量数据交换的应⽤。它的主要特点有:⾃描述;紧凑的序列化格式;压缩⽀持;动态模式解析;跨语⾔⽀持;⾼效的序列化.Avro是⼀种灵活和⾼效的序列化解...

Zookeeper详解

z 发布于 2023-07-11 17:31
概述 Zookeeper是⼀个开源的分布式的,为分布式应⽤提供协调的Apache项⽬。 ⼯作机制 Zookeeper从设计模式⻆度来理解:是⼀个基于观察者模式设计的分布式服务管理框架,它负责存储和管理⼤家都关⼼的数据,然后接受观察者的注册,⼀旦这些数据的状态发⽣变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应 ...

【算法】关于背包问题

z 发布于 2023-05-30 17:36
背包问题 对于背包问题,我们需要使用动态规划的思想来解决问题。 例如一个问题, 选择n个物品重量w不超过n的最大价值v 首先是集合表示,可以表示为前 i 个物品 不超过 j 的重量的集合 集合的属性:最大/最小值 状态的计算: 对于[i,j] 我们需要对此进行一个集合的划分 一般来说,取最后一部进行划分: 以01 背包为栗:每个物品 选择和不选 , 划分为...
标签: 算法 java

ThreadLocal内存泄露的问题

z 发布于 2023-05-25 20:46
ThreadLocal存储数据是使用ThreadLocalMap来存的,ThreadLocalMap基于Entry[]实现,存储数据时,本身ThreadLocal作为key来存取value数据。 key内存泄露: ThreadLocal对象本事就是一个强引用,当方法弹栈后,因为线程池中线程还在,对ThreadLocal引用的Key还在,这会导致这个Threa...

java中线程的6种状态

z 发布于 2023-05-24 16:14
创建 - 线程创建,分配地址 runnable - 就绪和运行统称Runnable 阻塞block - 没有拿到资源,synchronize等待 等待waiting - 挂起线程池,或者wait(),需要手动唤醒 time waiting - sleep(1000)睡眠的状态,到时间自动唤醒 终止terminated - 结束 public enum ...

docker安装elasticsearch

z 发布于 2023-05-09 22:25
使用docker部署 部署elasticsearch # 拉取镜像 docker pull elasticsearch # 创建容器 docker run --name es -p 9200:9200 \ -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms64...

线程小记

z 发布于 2023-04-28 09:51
多线程 并发和并行 并发 并行 在同一时刻,有多个指令在多个cpu同时执行 多线程三种实现方式对比 线程常用的方法 优先级 java默认使用的线程调度是抢占式调度,是一种随机的形式,对此我们可以为一个线程设计优先级,默认值是5. 优先级越高,抢占到的cpu越大。 守护线程 当非守护线程运行结束之后,守护线程就会陆续结束。 应用场景: 比如 在聊天窗口...

相差为k的数对数量

z 发布于 2023-04-19 20:57
给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nums[i] - nums[j]| == k 。 |x| 的值定义为: 如果 x >= 0 ,那么值为 x 。 如果 x < 0 ,那么值为 -x 。 1 <= nums.length,k <= 100000,数组中每...
标签: 算法

java知识点题目(无答案)

z 发布于 2023-03-27 22:24
一、Java基础 44 道 解释下什么是面向对象?面向对象和面向过程的区别? 面向对象的三大特性?分别解释下? JDK、JRE、JVM 三者之间的关系? 重载和重写的区别? Java 中是否可以重写一个 private 或者 static 方法? 构造方法有哪些特性? 在 Java 中定义一个不做事且没有参数的构造方法有什么作用? Java 中创建对象的几...