算法 标记 原理 垃圾

一篇带你了解JVM内存模型和垃圾回收机制

JVM内存模型 根据Java虚拟机规范,Java数据区域分为五大数据区域。 JVM的结构 其中方法区和堆是所有线程共享的,虚拟机栈、本地方法栈和程序计数器则为线程私有的。 有的博客称方法区是永久代,那是因为前者是JVM的规范,而后者则是JVM规范的一种实现,并且只有HotSpot才有永久代, JDK ......
模型 机制 内存 垃圾 JVM

递归算法理解 (一)

## Introduction 递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。递归算法,其实说白了,就是程序的自身调用。它表现在一段程序中往往会 ......
算法

NIO效率高的原理之零拷贝与直接内存映射

零拷贝 零拷贝是指避免在用户态(User-space) 与内核态(Kernel-space) 之间来回拷贝数据的技术。 传统IO 传统IO读取数据并通过网络发送的流程,如下图 传统IO read()调用导致上下文从用户态切换到内核态。内核通过sys_read()(或等价的方法)从文件读取数据。DMA ......
拷贝 效率 原理 内存 NIO

四种语言刷算法之LRU 缓存

力扣146. LRU 缓存 1、C typedef struct { int key; int val; UT_hash_handle hh; } LRUCache; LRUCache* usr = NULL; int size = 0; LRUCache* lRUCacheCreate(int c ......
缓存 算法 语言 LRU

万字长文解析最常见的数据库恢复算法: ARIES

#万字长文解析最常见的数据库恢复算法: ARIES > 首发地址: https://mp.weixin.qq.com/s/Kc13g8OHK1h_f7eMlnl4Aw ## Introduction ![image](https://img2023.cnblogs.com/blog/687923/2 ......
长文 算法 常见 数据库 数据

一篇文章搞懂NIO效率高的原理

NIO相比BIO的优势 NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。 bio与nio 面向流与面向缓冲 Java N ......
篇文章 效率 原理 NIO

数据结构和算法的关系

1.数据结构是一门研究组织数据方式的学科,有了编程呢个语言也就有了数据结构,学好数据结构可以编写出更加漂亮,更加有效率的代码 2.要学好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决 3.程序=数据结构+算法 4.数据结构是算法的基础,换言之,要学好算法,需要把数据结构学到位 ......
数据结构 算法 结构 数据

数据结构与算法

数据结构和算法的重要性: 1.算法是程序的灵魂,优秀的程序可以在海量数据计算时,依然保持高速计算。 2.一般来讲,程序会使用了内存计算框架(比如Spark)和缓存技术(比如Redis等)来优化程序,再深入的思考一下,这些计算框架和缓存技术,他的核心功能是哪个部分呢? 3.拿实际工作经历来说,在Uni ......
数据结构 算法 结构 数据

彻底搞懂epoll高效运行的原理

概念初探 epoll是一种I/O事件通知机制,是linux 内核实现IO多路复用的一个实现。 IO多路复用是指,在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出源可用的时候返回,然后对其的进行读写操作。 IO多路复用,以后会有详细讲解。 I/O 输入输出(input/output)的对象 ......
原理 epoll

垃圾回收机制GC

引用计数 x = 10 # 值10引用计数为1 y = x # 值10引用计数为2 y = 1000 # 值10引用计数减少为1 del x 值10引用计数减少为0 标记/清除 引用计数有可能会发生内存泄漏 分代回收 解决引用计数效率问题 如果我们想要回收python程序的内存空间,只能通过把变量值 ......
机制 垃圾

用颜色标记法,实现树的前中后序遍历

使用颜色标记法,实现树的前中后序遍历 package algorithm; import java.util.*; import java.util.function.BiConsumer; /** * 树的前中后序遍历 - 颜色标记法 */ public class TreeTraversal { ......
标记 颜色

JavaScript aglo 算法 时间复杂度

https://www.bigocheatsheet.com/ https://www.hello-algo.com/chapter_preface/about_the_book/ gpt的回答 好的,下面给出这些算法的JavaScript例子,并给出它们的时间复杂度分析: O(1) - 常数时间复 ......
复杂度 算法 JavaScript 时间 aglo

基于GPT搭建私有知识库聊天机器人(一)实现原理

## 1、成品演示 * 支持微信聊天 * 支持网页聊天 * 支持微信语音对话 * 支持私有知识文件训练,并针对文件提问 步骤1:准备本地文件a.txt,支持pdf、txt、markdown、ppt等 步骤2:上传a.txt,并选择要保存的在哪个知识库 步骤3:对上传的a.txt文件进行训练 步骤4: ......
知识库 机器人 原理 机器 知识

Spring boot 配置优先级,bean管理,SpringBoot原理,起步依赖,自动配置,组件扫描,SSM 使用 总结

Spring boot 原理 总结 一。 配置优先级 01.properties、yaml、yml三种配置文件,优先级最高的是properties 配置文件优先级排名(从高到低): 1. properties配置文件 2. yml配置文件 3. yaml配置文件 02.除了以上3种配置文件外,Spr ......
优先级 SpringBoot 组件 原理 Spring

Yarn的实现原理

Yarn作为分布式集群的资源调度框架,它的出现伴随着Hadoop的发展,使Hadoop从一个单一的大数据计算引擎,成为一个集存储、计算、资源管理为一体的完整大数据平台,进而发展出自己的生态体系,成为大数据的代名词。 所以在我们开始聊Yarn的实现原理前,有必要看看Yarn发展的过程,这对你理解Yar ......
原理 Yarn

保龄球Split算法

需求: 剩下两个或两个以上的球瓶它们之间没有球瓶; 例如: 7-9 或者 3-10 剩下两个或两个以上的球瓶,他们前面的球瓶被击倒,例如: 5-6 保龄球位置信息如下图: private int SplitBall(string positionStr) { //第一个球必须倒并且未倒的球大于1个 ......
保龄 保龄球 算法 Split

一种基于DeltaE(CIE 1976)的找色算法

```cpp // QuickFinder.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include #define _USE_MATH_DEFINES #include #include unsigned char buf[1080][1920][3]; c ......
算法 DeltaE 1976 CIE

文心一言 VS 讯飞星火 VS chatgpt (52)-- 算法导论6.2 4题

# 四、当i>A.heap-size/2 时,调用 MAX-HEAPIFY(A,i)会有什么结果? ## 文心一言: 当 i > A.heap-size/2 时,调用 MAX-HEAPIFY(A, i) 会将 A[i] 与其子树中的最大元素进行交换,并将 A[i] 视为新的根节点。这个操作会使得以 ......
文心 导论 算法 chatgpt VS

nginx之IP_Hash原理配置

1. 什么是ip_hash?ip_hash是根据用户请求过来的ip,然后映射成hash值,然后分配到一个特定的服务器里面;使用ip_hash这种负载均衡以后,可以保证用户的每一次会话都只会发送到同一台特定的Tomcat里面,它的session不会跨到其他的tomcat里面去的;2. hash算法原理 ......
原理 IP_Hash nginx Hash IP

代码随想录算法训练营第二十一天| 77. 组合

回溯——组合 思路: 套了K次的循环,如何对K次循环呢,就需要一个startIndex,用它来控制从哪里开始 代码: 1 void combine_backTrack(int n, int k, int startIndex, vector<int>& path, vector<vector<int ......
随想录 训练营 随想 算法 代码

干货|三个维度详解 Taier 本地调试原理和实践

在平时和开发者们交流的过程中,发现许多开发朋友尤其是新入门 [Taier](https://github.com/DTStack/Taier) 的开发者,对于本地调试都有着诸多的不理解和问题。本文就大家平时问的最多的三个问题,服务编译,配置&本地运行,如何在 Taier 运行 [Flink-stan ......
干货 维度 原理 三个 Taier

跨端之桥方法原理及实现

title: js-bridge date: 2020-08-28 20:25:06 categories: js 本文探讨 js 与 app 原生的交互 ### 场景 移动端页面需要和 app 进行一些交互,比如获取在 app 中的用户信息,分享后回调需要 app 来通知 h5 完成页面渲染,js ......
原理 方法

垃圾收集策略与算法

# 垃圾收集策略与算法 程序计数器、虚拟机栈、本地方法栈随线程而生,也随线程而灭;栈帧随着方法的开始而入栈,随着方法的结束而出栈。这几个区域的内存分配和回收都具有确定性,在这几个区域内不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。 而对于 Java 堆和方法区,我们只 ......
算法 垃圾 策略

HotSpot 垃圾收集器

# HotSpot 垃圾收集器 HotSpot 虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,虽然我们要对各个收集器进行比较,但并非为了挑选出一个最好的收集器。我们选择的只是对具体应用最合适的收集器。 ## 新生代垃圾收集器 ### Serial 垃圾收集器(单线程) 只开启**一条** G ......
垃圾 HotSpot

敏感词过滤--DFA算法及代码案例

我们应该都遇见过敏感词过滤,比如当我们输入一些包含暴力或者色情的文本,系统会阻止信息提交。敏感词过滤就是检查用户输入的内容有没有敏感词,检查之后有两个策略。 直接阻止信息保存,接口返回错误信息 允许信息保存,但是会把敏感词替换为*** 不管是哪种策略,首先都得找到是否包含敏感词,这个判断一般是在服务 ......
算法 案例 代码 DFA

Java 必会10大的经典算法

Java 必会10大的经典算法 https://github.com/hustcc/JS-Sorting-Algorithm 冒泡排序:思路-两层循环;外层循环控制比较的轮数,内层循环控制每一轮的比较和交换。在每一轮中,通过比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置。 经过多 ......
算法 经典 Java

你没见过的分库分表原理解析和解决方案(二)

# 你没见过的分库分表原理解析和解决方案(二) 高并发三驾马车:分库分表、MQ、缓存。今天给大家带来的就是分库分表的干货解决方案,哪怕你不用我的框架也可以从中听到不一样的结局方案和实现。 一款支持自动分表分库的orm框架[`easy-query`](https://github.com/xuejmn ......
分表 分库 原理 解决方案 方案

数据结构与算法 - 链表

# 双链表的的基本结构 从 STL 源码抽出的基本双链表结构 ## 代码 ```c++ #ifndef _GRAVER_GLIB_LIST_H_ #define _GRAVER_GLIB_LIST_H_ #include #include "graver/util/log_util.h" names ......
数据结构 算法 结构 数据

手机卡顿还在傻傻地清理垃圾?关闭这3个设置,手机用到2025年!

刚买手机才几个月,我们明显就能感到不如刚买那时候流畅了。手机用了一年左右,就会出现卡顿的现象了。尤其在我们玩游戏的时候,突然之间的卡顿就被KO了,怎么完了也没个头绪!那么,在这种糟糕的情况下,相信很多朋友只会清理垃圾,但挣扎一番之后发现这种做法还是于事无补。下面老毛桃就教给大家一个深度技巧,关闭这几 ......
手机 垃圾 2025

决战圣地玛丽乔亚重新归来之Day58--算法回溯

电话号码 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 多少个数 ......
算法 Day 58