java技术圈 为您找到相关结果 16

自己写ArraryList GoArrayList

前言: java ArrayList的简易实现,代码中注释比较详尽,通俗易懂。 正文: GoArrayList.java package com.anteoy.dataStructuresAndAlgorithm.javav2.my; import java.util.Iterator; import java.util.NoSuchElementException; /** * Created by zhoudazhuang on 17-3-1. * Description: 简易Arrarylist实现 */ public class GoArrayList implements Iterable { //定义默认容量 private static final int DEF...阅读全文

博文 2019-04-04 09:50:42 www.allocmem.com

Lucene段概念

Lucene段概念分段存储 在早期的全文检索中为整个文档集合建立了一个很大的倒排索引,并将其写入磁盘中,如果索引有更新,就需要重新全量创建一个索引来替换原来的索引。这种方式在数据量很大时效率很低,并且由于创建一次索引的成本很高,所以对数据的更新不能过于频繁,也就不能保证时效性。 现在,在搜索中引入了段的概念(将一个索引文件拆分为多个子文件,则每个子文件叫作段),每个段都是一个独立的可被搜索的数据集,并且段具有不变性,一旦索引的数据被写入硬盘,就不可再修改。 在分段的思想下,对数据写操作的过程如下。 新增。当有新的数据需要创建索引时,由于段的不变性,所以选择新建一个段来存储新增的数据。 删除。当需要删除数据时,由于数据所在的段只可读,不可写,所以Lucene在索引文件下新增了一个.del的文件...阅读全文

博文 2020-11-18 11:02:36 简书

JVM 系列文章之 Full GC 和 Minor GC

Full GC Full GC 就是收集整个堆,包括新生代,老年代,永久代(在JDK 1.8及以后,永久代会被移除,换为metaspace)等收集所有部分的模式 RednaxelaFX大在Major GC和Full GC的区别是什么?触发条件呢?- 知乎这个问题有关于 GC分类的回答: 针对 HotSpot VM的实现,它里面的GC其实准确分类有两种: Partial GC(局部 GC): 并不收集整个 GC 堆的模式 Young GC: 只收集young gen的GC,Young GC还有种说法就叫做 "Minor GC" Old GC: 只收集old gen的GC。只有垃圾收集器CMS的concurrent collection 是这个模式 Mixed GC: 收集整个young gen...阅读全文

博文 2019-11-27 07:00:30 掘金

spring boot中,jar包、war包的区别 - cag2050

jar包、war包 比较(表格) 项目 jar包 war包 在开发调试完成之后,可以将应用打成JAR包的形式,可以直接使用Maven插件的package命令,最终会形成一个可运行的 JAR包。我们使用java –jar命令就可以运行这个JAR包了。 JAR包解压后的目录结构: 这个JAR包与传统JAR包的不同之处在于里面有一个名为lib的目录,在这个目录中包含了这个简单应用所依赖的其他JAR包,其中也包含内置的嵌 入式Tomcat,正是使用它,才能发布服务和访问Web资源。除了我们编写的源码所编译形成的CLASS以外,在org目录下还有许多Spring所提 供的CLASS,正是依赖这些CLASS,才能够加载位于lib目录下JAR中的类。这样的加载机制与在OSGi bundle中声明Bundl...阅读全文

博文 2019-10-19 09:06:14 博客园

x

es 6.3的插件xpack内置了sql, 和NPLChina的elasticsearch-sql插件相比,要少很多实用性的功能,但相比有蛮多性能上的优势。今天看看都有哪些sql优化点。 x-pack sql做的sql优化 PruneDuplicatesInGroupBy: 裁剪重复的group by 字段。以sqlselect * from table group by code,code,这里两次group by都是code,在elasticsearch-sql中,会被group by两次重复计算。xpack-sql做了这个优化,然而是一个没用的优化,因为xpack-sql不支持多字段group by,直接报错。 ReplaceDuplicateAggsWithReferences: 对...阅读全文

博文 2020-05-15 08:31:21 pack sql做的sql优化 | 甲鱼的大数据之旅

理解Java中的弱引用(Weak Reference) - absfree

本篇文章尝试从What、Why、How这三个角度来探索Java中的弱引用,理解Java中弱引用的定义、基本使用场景和使用方法。由于个人水平有限,叙述中难免存在不准确或是不清晰的地方,希望大家可以指出,谢谢大家:) 1. What——什么是弱引用? Java中的弱引用具体指的是java.lang.ref.WeakReference类,我们首先来看一下官方文档对它做的说明: 弱引用对象的存在不会阻止它所指向的对象变被垃圾回收器回收。弱引用最常见的用途是实现规范映射(canonicalizing mappings,比如哈希表)。 假设垃圾收集器在某个时间点决定一个对象是弱可达的(weakly reachable)(也就是说当前指向它的全都是弱引用),这时垃圾收集器会清除所有指向该对象的弱引用...阅读全文

博文 2021-04-27 05:57:37 博客园

Maven学习(六) - 插件maven-shade-plugin - 青离的个人空间 - OSCHINA

网上有一些maven-shade-plugin替代maven-assembly-plugin的文章,原因是代maven-assembly-plugin打出的jar包中要么是不能设置Main-Class,要么spring的META-INF/spring.*文件相互覆盖了。对于这两个问题,maven-assembly-plugin在当前的版本(3.1.0)中都可以解决了(方法见https://my.oschina.net/u/2377110/blog/1584205)。 实际上这两个插件所针对的用途其实是有差异的,而它们与maven默认的maven-jar-plugin都是打包插件,简单的区别如下: plugin function maven-jar-plugin maven 默认打包插件,用来...阅读全文

博文 2022-07-25 02:17:41 中文开源技术交流社区

图解LinkedHashMap原理

图解LinkedHashMap原理1 前言 LinkedHashMap继承于HashMap,如果对HashMap原理还不清楚的同学,请先看上一篇:图解HashMap原理 2 LinkedHashMap使用与实现 先来一张LinkedHashMap的结构图,不要虚,看完文章再来看这个图,就秒懂了,先混个面熟: LinkedHashMap结构.png 2.1 应用场景 HashMap是无序的,当我们希望有顺序地去存储key-value时,就需要使用LinkedHashMap了。 Map hashMap = new HashMap(); hashMap.put("name1", "josan1"); hashMap.put("name...阅读全文

博文 2021-08-20 08:19:33 简书

【Java集合】想成为Java编程高手?先来了解一下List集合的特性和常用方法!

通过前面文章的介绍,相信大家对Java集合框架有了简单的理解,接下来说说集合中最常使用的一个集合类的父类,List 集合。那么,List到底是什么?它有哪些特性?又该如何使用呢?让我们一起来揭开List的神秘面纱。 List,顾名思义,就是列表的意思。在Java中,List是一个接口,它继承了Collection接口,表示一个有序的、可重复的元素集合。下面我们从List 接口的概念、特点和常用方法等方面来介绍List。 ## 一、List 接口介绍 java.util.List 接口,继承自 Collection 接口(可以回看咱们第二篇中的框架体系),List 接口是单列集合的一个重要分支,习惯性地将实现了List 接口的对象称为List集合。 ![image.png](http://st...阅读全文

博文 2023-11-15 17:01:34 YDYXCODE

K8s 为什么要弃用 Docker?

以下文章来源于云原生技术社区,作者Tony,侵删在写“K8s”系列文章的过程中,很多读者留言询问 K8s 弃用 Docker 的事,担心现在学习 Docker 是否还值得,是不是该切换到 containerd 或其他运行时。这些怀疑有一定的道理。两年前,K8s 发布“弃用 Docker”的消息时,确实在社区引起了“轩然大波”,影响甚至蔓延到了社区之外,K8s 不得不写了好几篇博客来重复解释原因。两年过去了,虽然 K8s 1.24 已经实现了“弃用 Docker”的目标,但很多人似乎对这一点还不是很清楚。所以本篇文章就来聊聊这个话题。CRI(容器运行时接口)要理解 K8s 为何“弃用 Docker”,我们得回顾一下 K8s 的发展史。2014 年,Docker 正处于鼎盛时期,而 K8s 刚刚...阅读全文

博文 2023-09-13 16:29:40 知乎

ForkJoinPool的poll方法,为啥线程一直在执行Thread.yield()忙等待导致打满cpu

ForkJoinPool.java中pool方法源码如下: final ForkJoinTask poll() { int b, k, cap; ForkJoinTask[] a; while ((a = array) != null && (cap = a.length) > 0 && top - (b = base) > 0) { ForkJoinTask t = (ForkJoinTask) QA.getAcquire(a, k = (cap - 1) & b); if (base == b++) { if (t == null) Thread.yield(); // await index advance else if (QA.compareAndSet(a...阅读全文

博文 2024-12-06 18:20:20 zhidiantech

React18+TS+Vite 从0自定义组件库实战复杂项目(完结)

React18+TS+Vite 从0自定义组件库实战复杂项目(完结)​获课:999it点top/3927/前端构建工具集分析引言随着前端开发复杂度的增加,现代Web应用程序不仅仅依赖于HTML、CSS和JavaScript文件的简单组合。为了提高开发效率、优化性能以及管理复杂的项目结构,各种前端构建工具应运而生。这些工具可以帮助开发者自动化许多任务,如代码压缩、资源合并、依赖管理、测试执行等。本文将深入探讨当前流行的前端构建工具及其提供的功能。1. WebpackWebpack 是一个模块捆绑器(bundler),它能够将应用程序中的所有静态资源视为模块,并通过入口点打包成一个或多个输出文件。它支持广泛的插件系统,可以处理几乎所有类型的资产——不仅限于JavaScript,还包括样式表、图片...阅读全文

博文 2025-01-10 19:14:02 wewrg

Flink 从0到1实战实时风控系统(MK完结)

Flink 从0到1实战实时风控系统(MK完结)获课:Flink 从0到1实战实时风控系统(MK完结)获取ZY↑↑方打开链接↑↑理解Flink4大基石之窗口机制Apache Flink 是一个分布式流处理框架,以其强大的窗口机制、状态管理、时间处理和高吞吐低延迟的特性著称。窗口(Window)是Flink中用于处理无限数据流的核心概念之一,它允许你对流中的数据进行分组并应用计算。以下是关于Flink窗口机制的详细解释:窗口类型Flink支持多种类型的窗口,主要包括以下几种:滚动窗口(Tumbling Windows):数据被划分成固定大小的非重叠窗口。每个元素只属于一个窗口。例如:每5分钟统计一次点击量。滑动窗口(Sliding Windows):类似于滚动窗口,但窗口之间有重叠部分。你可以...阅读全文

博文 2025-02-10 20:47:22 qqww

从SSM到SpringBoot的校园商铺系统

获课:youkeit.xyz/1412/获取ZY↑↑方打开链接↑↑在将 SSM(Spring, Spring MVC, MyBatis)项目迁移到 Spring Boot 时,事务管理 是一个需要重点关注的方面。Spring Boot 提供了更简洁和自动化的事务管理方式,但为了确保迁移的顺利进行,需要了解如何将 SSM 中的事务配置转换为 Spring Boot 的配置。以下是详细的迁移指南:1. SSM 中的事务管理在 SSM 项目中,事务管理通常通过以下方式配置:XML 配置:在 applicationContext.xml 中配置事务管理器、事务拦截器等。注解配置:使用 @Transactional 注解标记需要事务支持的方法,并在配置文件中启用注解驱动的事务管理。示例 XML 配置:...阅读全文

博文 2025-03-02 10:27:49 13933033762

Redis实现分布式滑动+滚动窗口限流

### 一、Redis ZSET 实现滑动窗口限流的核心原理 #### 1. **数据结构选择** 使用 Redis 的 **ZSET(有序集合)** 作为核心数据结构: • **Score 字段**:存储请求的时间戳(精确到毫秒或秒) • **Value 字段**:建议使用 UUID 或 MD5 值(避免时间戳重复导致数据覆盖) #### 2. **滑动窗口的原子操作流程** 通过 Lua 脚本实现以下步骤(以 10 秒窗口、最大 100 次请求为例): ```lua -- KEYS[1] = 限流键(如 "rate_limit:/api/login:127.0.0.1") -- ARGV[1] = 窗口大小(秒) -- ARGV[2] = 当前时间戳(秒) -- ARGV[3] = 最大...阅读全文

博文 2025-03-31 14:51:03 dalang

基于C Plus Plus的数据结构与算法课程 首套C++完美结合的数据结构与算法

获课♥》789it.top/14147/C++与数据结构:构建高性能应用程序的基础C++作为高性能编程语言的优势C++因其独特的特性成为构建高性能应用程序的首选语言:零成本抽象:高级特性如类、模板几乎不带来运行时开销内存控制:直接内存访问和精细的内存管理能力多范式支持:支持面向对象、泛型和过程式编程硬件访问:内联汇编和与C的兼容性允许底层硬件操作标准库丰富:提供STL等高效的数据结构和算法实现基础数据结构及其C++实现数组与向量cpp复制下载// 原始数组 int arr[5] = {1, 2, 3, 4, 5}; // std::array (C++11) std::array stdArr = {1, 2, 3, 4, 5}; // std::vector (动态数组) ...阅读全文