底层

ConcurrentHashMap源码&底层数据结构分析

ConcurrentHashMap:线程安全的HashMap 1.存储结构 ConcurrnetHashMap 由很多个 Segment 组合,而每一个 Segment 是一个类似于 HashMap 的结构,所以每一个 HashMap 的内部可以进行扩容。但是 Segment 的个数一旦初始化就不能 ......

5.数据交换格式与 SpringIOC 底层实现

数据交换格式与 SpringIOC 底层实现 一、 课程目标 XML 和 JSON Java 反射机制 手写 SpringIOC 二、 什么是数据交换格式 客户端与服务器常用数据交换格式xml、json、html 三、 数据交换格式用场景 移动端(安卓、IOS)通讯方式采用 http 协议+JSON ......
底层 SpringIOC 格式 数据

DBus API的使用(讲的很清晰,底层概念,基本api)

DBus是用来进行进程间通信的。下面这张图展示了一些DBus的大部分东西,但是它太复杂了: ​ DBus 本身是构建在 Socket 机制之上。真正的通信还是由 Socket 来完成的。DBus 则是在这之上,制定了一些通信的协议,并提供了更高一层的接口,以更方便应用程序之间进行数据的交互。 在DB ......
底层 概念 DBus API api

JUC2_谈谈CAS5_CAS底层原理

CAS底层原理 概念 CAS的全称是Compare-And-Swap,它是CPU并发原语 它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的 CAS并发原语体现在Java语言中就是sun.misc.Unsafe类的各个方法。调用UnSafe类中的CAS方法,JVM会帮 ......
底层 CAS CAS5_CAS 原理 JUC2

C++类的底层机理

我们首先从一个问题来阐明类的底层机理: 假如有一个类A,里面有一个成员函数get(),例如: class A { public: void get(); } A a; 那么a.get()表示什么呢?首先给出答案是get(&a),因为在类的底层机制中,成员函数的第一个参数都是一个指向该类数据结构的指针 ......
机理 底层

Spring源码系列:初探底层,手写Spring

在学习 Spring 框架源码时,记住一句话:源码并不难,只需要给你各种业务场景或者项目经理,你也能实现自己的 Spring。虽然你的实现可能无法与开源团队相媲美,但是你肯定可以实现一个 0.0.1 版本。因此,初次阅读源码时,不要陷入太深的细节中,先了解大体逻辑,再仔细研读。 ......
Spring 底层 源码

Redis - 底层数据结构

Redis 构造了多种底层数据结构供使用,不同的数据类型有可能使用到多种底层数据结构存储,因此,需要理解为何 Redis 会有这样的设计,理解每个底层数据结构的概念之后,就能知晓在极端性能上如何做取舍。 ......
数据结构 底层 结构 数据 Redis

AOP底层原理-Cglib动态代理

public class App { public static void main(String[] args) { UserService userService = UserServiceCglibProxy.createUserServiceCglibProxy(UserServiceImp ......
底层 原理 动态 Cglib AOP

AOP底层原理-装饰模式(静态代理)

原始方法: 静态代理的方法: 测试: ......
底层 静态 原理 模式 AOP

Mybatis-Plus详解(一篇带入了解底层原理)

一. MP简介 我们知道,Mybatis属于一个半自动的ORM框架。之所以说Mybatis是一个半自动的ORM框架,原因是它还需要我们自己在注解或是映射文件中编写SQL语句,并没有实现完全的自动化。SQL语句的编写,虽然增加了项目和业务需求实现的灵活性,但对一些基本表的操作而言,无疑增加了数据库操作 ......
Mybatis-Plus 底层 原理 Mybatis Plus

C++ STL Unique 底层实现原理 - 代码

事实上在搜STL Unique的时候发现网上绝大部分都是错的,包括unique元素提到前面或者非unique元素提到后面。 Unique前后里面的元素是不一样的!!! Unique前后里面的元素是不一样的!!! Unique前后里面的元素是不一样的!!! 我们来看代码 #include <bits/ ......
底层 原理 代码 Unique STL

【Java 并发】【九】【AQS】【七】Semaphore信号量底层机制原理

1 前言 接下来我们来看看Semaphore,也是基于之前讲解的AQS来实现的,建立在AQS体系之上的一个并发工具类。 2 Semaphore是什么 Semaphore,它是一个信号量,主要作用是用来控制并发中同一个时刻执行的线程数量,可以用来做限流器,或者流程控制器。在创建的时候会指定好它有多少个 ......
底层 Semaphore 信号 原理 机制

程序化广告还有未来么?(4/5)——程序化领域变化的底层逻辑和反思

最近有一些做程序化广告业务的朋友和公司找我咨询,他们很困惑十年前那么时兴的DSP和ADX,最近三四年怎么忽然就不香了,广告主预算给的不像原来多,考核要求还特别多、特别苛刻。他们问程序化广告业务还有没有未来呢?接下来他们该何去可从。 这是一个很好的话题,我想了想之后问他们怎么理解程序化广告,要解答他们 ......
程序 底层 逻辑 领域 广告

【Java 并发】【九】【AQS】【六】CyclicBarrier栅栏底层机制原理

1 前言 接下来我们来看看CyclicBarrier,也是基于之前讲解的AQS来实现的,建立在AQS体系之上的一个并发工具类。 2 CyclicBarrier是什么 CyclicBarrier,就是一个计数器栅栏,也就是一个计数器开关。比如CyclicBarrier barrier = new Cy ......
栅栏 CyclicBarrier 底层 原理 机制

【Java 并发】【九】【AQS】【五】CountDownLatch计数器底层机制原理

1 前言 接下来我们来看看CountDownLatch,也是基于之前讲解的AQS来实现的,建立在AQS体系之上的一个并发工具类。 2 CountDownLatch是什么 CountDownLatch类似一个有多道锁的门闩,CountDownLatch在创建的时候就指定好有多少道锁链了。假如有个门闩 ......

深入理解MySQL索引底层数据结构

在日常工作中,我们会遇见一些慢SQL,在分析这些慢SQL时,我们通常会看下SQL的执行计划,验证SQL执行过程中有没有走索引。通常我们会调整一些查询条件,增加必要的索引,SQL执行效率就会提升几个数量级。我们有没有思考过,为什么加了索引就会能提高SQL的查询效率,为什么有时候加了索引SQL执行反而会... ......
数据结构 底层 索引 结构 数据

你绝对没想到的GPT的底层意义

学会说话才是完整的人 有种说法在民间流传已久,在某些非洲部落中,孩子出生后往往会被称作“小人”或者“半个人”,直到他们能够进行语言的交流才被认为是完全的人。这是因为在这些部落中,人们认为人类的本质不仅仅在于生命和生理,还在于社交和文化认同,只有在孩子能够适应社会文化并与他人进行交流之后,才能真正成为 ......
底层 意义 GPT

【Java 并发】【九】【AQS】【三】基于AQS的共享锁实现、底层源码深度剖析

1 前言 上一节我们详细讲解了基于AQS实现的互斥锁机制,进行了深入的剖析,包括从acquire入口源码开始,剖析了获取锁失败调用addWaiter方法加入等待队列,知道了Node节点是怎么插入等待队列的;同时还剖析acquireQueue方法的源码,解析了插入等待队列之后的节点什么时候被挂起,什么 ......
底层 AQS 源码 深度 Java

【Java 并发】【九】【AQS】【二】基于AQS的互斥锁机制、底层源码深度剖析

1 前言 上一节我们从整体上分析了什么是AQS以及AQS内部的数据结构,那么这节我们就从acquire和release入手,分析一下AQS为独占锁提供的机制:到底是怎么在获取资源失败进入等待队列的?以及释放资源的时候怎么唤醒后继节点的线程竞争锁的? 2 acquire 方法源码解析 首先我们看一下A ......
底层 AQS 源码 深度 机制

mysql底层

B数每个节点都会存储值 B+数的数据是存储在叶子节点,通过链表,将所有数据进行链接 ......
底层 mysql

【Java 并发】【synchronized】【一】synchronized底层是怎么通过monitor进行加锁的

1 前言 之前我们说过对象头的信息,这节我们就来看看synchronized是怎么通过monitor进行重量级加锁。 2 内容回顾 我们先来回顾下Mark Word的内容: 当Mark Word的最后两位的锁标志位是10的时候,Mark Word这哥们说自己处于重量级锁的模式,重量级加锁不是它的责任 ......
synchronized 底层 monitor Java

容器功能 底层注解

一、组件添加 1、@Configuration 原来使用配置文件配置bean <bean id="user" class="com.cmq.boot.bean.User"> <property name="name" value="cencen"/> <property name="age" val ......
注解 底层 容器 功能

投屏Sink端音频底层解码并用OpenSLES进行播放

一、代码分析 在公司项目中,音频解码及播放是把数据传到Java层进行解码播放的,其实这个步骤没有必要,完全可以在底层进行处理。 通过代码发现其实也做了在底层进行解码,那么为啥不直接使用底层解码播放呢,我们可以看看原先代码怎么做的: 代码中通过定义的宏DECODE_AUDIO_IN_JAVA来控制mA ......
底层 OpenSLES 音频 Sink

redis网络IO模型底层使用IO多路复用,通过reactor模式实现的,在redis 6.0以前属于单reactor单线程模式

详解redis网络IO模型 前言 "redis是单线程的" 这句话我们耳熟能详。但它有一定的前提,redis整个服务不可能只用到一个线程完成所有工作,它还有持久化、key过期删除、集群管理等其它模块,redis会通过fork子进程或开启额外的线程去处理。所谓的单线程是指从网络连接(accept) - ......
reactor 模式 redis 线程 底层

官方文档 | 【JVM调优体系】「GC底层调优实战」XPocket为终结性能问题而生—开发指南

XPocket 用户文档 XPocket 是PerfMa为终结性能问题而生的开源的插件容器,它是性能领域的乐高,将定位或者解决各种性能问题的常见的Linux命令,JDK工具,知名性能工具等适配成各种XPocket插件,并让它们可以相互联动一键解决特定的性能问题。 目前XPocket插件生态已经实现了 ......
开发指南 底层 实战 性能 体系

决战圣地玛丽乔亚Day44---Redis数据结构的底层实现和高可用Cluster

Redis为什么快? 前面讲了独有的数据结构+IO模型的选用。 除此之外还有什么因素的加持呢? 1.内存存储,避免磁盘IO的开销,提高读取速度 2.网络模型,使用Reactor模型,处理大量连接请求,同时保持低延迟和高吞吐 3.单线程处理请求。但是RDB,AOF等场景会用到多线程模式。 Redis数 ......
数据结构 底层 Cluster 结构 数据

TIdHTTPWebBrokerBridge替换成mormot底层

目前使用案例是git开源项目horse改动 思路大概为http请求被WebBrokerDispatch函数转发到了WebModule中进行后续处理。 替换如下单元源码即可将horse项目的indy底层改成mormot底层,修改原理来源http://bbs.2ccc.com/topic.asp?top ......
TIdHTTPWebBrokerBridge 底层 mormot

golang select底层原理

前言 select 是操作系统中的系统调用,我们经常会使用 select、poll 和 epoll 等函数构建 I/O 多路复用模型提升程序的性能。Go 语言的 select 与操作系统中的 select 比较相似,但也有不同点,它只支持channel收发的多路复用。 这里已go1.19版本为例,编 ......
底层 原理 golang select