首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    hashmap底层实现原理和源码分析(python底层源码)

    说明:以下源码基于JDK1.7,32位 0.HashMap底层的数据结构是数组加链表的形式,存储结构如下图: 1.创建一个新的HashMap集合的构造函数: //初始默认数组的大小 static final

    59300编辑于 2022-07-31
  • 来自专栏高级开发进阶

    【Zookeeper底层源码剖析】

    源码查看Zookeeper底层源码启动zookeeper zookeeper源码下载地址: //选择分支3.5.8 https://github.com/apache/zookeeper.git 源码导入idea后,org.apache.zookeeper.Version类会报错,需要建一个辅助类 package org.apache.zookeeper.version; public interface 启动或leader宕机选举leader流程 leader选举多层队列架构 整个zookeeper选举底层可以分为选举应用层和消息传输层,应用层有自己的队列统一接收和发送选票,传输层也设计了自己的队列, Leader选举源码流程图 ZAB协议介绍 整个Zookeeper就是一个多节点分布式一致性算法的实现,底层采用的实现协议是ZAB。 Zookeeper写数据ZAB协议源码剖析

    42930编辑于 2022-09-29
  • 来自专栏高级开发进阶

    【Zookeeper底层源码剖析】

    源码查看Zookeeper底层源码启动zookeeper zookeeper源码下载地址: //选择分支3.5.8 https://github.com/apache/zookeeper.git 源码导入idea后,org.apache.zookeeper.Version类会报错,需要建一个辅助类 package org.apache.zookeeper.version; public interface 启动或leader宕机选举leader流程 leader选举多层队列架构 整个zookeeper选举底层可以分为选举应用层和消息传输层,应用层有自己的队列统一接收和发送选票,传输层也设计了自己的队列, Leader选举源码流程图 ZAB协议介绍 整个Zookeeper就是一个多节点分布式一致性算法的实现,底层采用的实现协议是ZAB。 Zookeeper写数据ZAB协议源码剖析

    49521编辑于 2022-03-07
  • 来自专栏FREE SOLO

    Hashmap底层源码分析

    resize (capacity * load factor) //数组扩容条件:1.已经存在的key-value mappings的个数大于等于阈值 // 2.底层数组的

    52720发布于 2019-05-06
  • 来自专栏小明说Java

    源码解析HashMap底层扩容

    0 : (h = key.hashCode()) ^ (h >>> 16);}步骤:hashmap在jdk1.8底层是采用数组+链表+红黑树1)先对key进行hash算法计算key的索引2)如果table

    26710编辑于 2023-11-25
  • 来自专栏Java探索之路

    Spring的底层源码分析

    Spring的底层源码分析 一 . Spring运行原理 流程介绍 流程图 二、源码分析 Spring 中IOC 容器分类 1. ApplicationContext 2. 二、源码分析 Spring 中IOC 容器分类 IoC 容器:最主要是完成了完成对象的创建和依赖的管理注入等等。 查阅这些接口的源码和说明发现,每个接口都有他使用的场合,它主要是为了区分在 Spring 内部在操作过程中对象的传递和转化过程中,对对象的数据访问所做的限制。

    84320发布于 2020-07-24
  • 来自专栏程序员成长指北

    深究Vue底层原理源码

    作为基本功,无论工具如何变迁,了解JavaScript底层,理解JavaScript的各种特性,无论你用什么工具都是手到擒来。底子不扎实,日常出现一个bug都要花很多时间去定位问题。 JavaScript的运行机制,作用域,原型链,变量特点等底层原理。 2. 设计模式,架构思维,编程思想,软件工程的常见问题。 02. 最佳实践 我们都会写路由。 源码 如果最近在找工作,或多或少都感受到了,面试时已经会开始问Vue底层源码的问题。既然人人都会Vue,那么面试官挑选人才,除了考你的编程能力,对于最佳实践的理解,就是问你源码了。 抛开别的不说,就面试来说源码都是十分重要了。 除此之外,真正理解源码,对于所用工具的理解会上升一个层次。你会发现自己再写起Vue来,bug会少很多,修复起bug来也会快速很多。 但是于此同时很多人也面临一个问题,就是完全看不懂源码,跟别说理解通透了。 这里说几个Vue的底层原理: 1. 数据双向绑定,Vue3之前通过get和set完成,而Vue3后通过proxy来完成。

    92610发布于 2020-04-16
  • 来自专栏Swift社区

    探索 Swift 底层源码编译

    前言 ---- OC 的底层研究结束后,下面我们研究 Swift 底层,研究 Swift 底层首先要对 Swift 源码进行编译,下面我们就来编译一下 Swift 源码 2. 编译步骤 ---- ▐ 3.1 准备工作 新建一个文件夹,命名为 swift-compile 由于拉取资源过程需要访问外网,所以需要访问国外网站 ▐ 3.2 clone swift源码 这里我编译的是 swift-5.3.1-Release,可以自行在官网上找到对应的分支,需要注意的是:Swift 源码版本需要与Xcode版本匹配(官方编译文档有说明) git clone --branch swift 调试 ---- 切换至终端 在终端中写入一下代码 源码中搜索 swift_allocObject(这个在后面会研究,再次仅做调试的例子),加上断点 继续在终端输入 var t = LjTeacher () 回车 我们发现断点断住了,这说明调试成功了( LjTeacher() 内部调用了swift_allocObject 方法) 至此 Swift 源码调试完成,为后面探索 Swift 底层实现提供很直观帮助

    51620发布于 2021-11-26
  • Java线程池底层源码源码解析

    文章链接:https://cloud.tencent.com/developer/article/2472358前言嘿,各位技术爱好者们,今天咱们来聊聊Java线程池提交任务的底层源码源码解析。 你:这就涉及到线程池的底层原理了,我们接下来详细聊聊。三、背景我:在深入底层原理之前,我们先来聊聊线程池的背景吧。 五、底层原理我:接下来我们来聊聊线程池的底层原理吧。你:好的,线程池的底层原理主要涉及到线程池的状态管理、工作线程的创建与销毁、任务队列的管理以及拒绝策略的处理等方面。 六、示例我:了解了线程池的底层原理后,我们来看看具体的示例吧。你:好的,我们先来看一个简单的示例,演示如何使用线程池来执行任务。 后记希望通过今天的对话,你对Java线程池提交任务的底层源码源码解析有了更深入的了解。线程池作为并发编程中的一大利器,其重要性不言而喻。

    30221编辑于 2024-11-30
  • 来自专栏java 成神之路

    RocketMQ 底层通信机制 源码分析

    概述 RocketMQ 底层通讯是使用Netty来实现的。 下面我们通过源码分析下RocketMQ是怎么利用Netty进行通讯的。 本文分析的是RocketMQ 最新版本 4.3.2版本。 大家比较熟悉的几个模块对应的源码如下: Broker Master 和 Slave 对应的 broker 模块。 Producer 和 Consumer 对应的是 client 模块。

    1.2K20发布于 2018-12-17
  • 来自专栏肉眼品世界

    RocketMQ底层原理和源码解析

    鉴于RocketMQ通信模块的底层源码是Netty实现的,在阅读RocketMQ的源码之前,建议读者先对Netty的多线程模型、JAVA NIO模型均有一定的了解,以便快速理解RocketMQ源码。 rocketmq-remoting:基于netty的底层通信实现,所有服务间的交互都基于此模块。 rocketmq-srvutil:解析命令行的工具类ServerUtil。 了解了mq服务启动的过程,接下来,我们按照一条消息从客户端发出,最终到服务端的存储层并如何落盘,这一条调用链来分析源码,了解一条消息是怎么处理的。 3. 以下是异步复制的源码: ? 7. 源码位于broker.transaction下: ? 注意:3.2.6之后的版本事务回查接口被删除了,阿里不对外开源了,事务回查接口需要使用者自己编写。 ·END·

    5.1K40发布于 2020-11-11
  • 来自专栏兮动人的博客

    Vector底层结构和源码分析

    Vector 的基本介绍1) Vector类的定义说明图片2) Vector底层也是一个对象数组, protected Object[] elementData;图片3) Vector是线程同步的,即线程安全 源码分析new Vector() 底层public Vector() { this(10);}补充:如果是 Vector vector = new Vector(8);走的方法:public Vector

    38240编辑于 2023-01-23
  • 来自专栏兮动人的博客

    ArrayList底层结构和源码分析

    源码,如 :add 方法没有 synchronized (同步)修饰。在多线程情况下,不建议使用ArrayList。 ArrayList 的底层操作机制源码分析1) ArrayList中维护了一个Object类型的数组elementData。 debug看源码transient Object[] elementData; ,transient表示瞬间,短暂的,表示该属性不会被序列化图片2) 当创建ArrayList对象时,如果使用的是无参构造器 debug 查看 ArrayList 源码分析//使用无参构造器创建 ArrayList 对象//ArrayList list = new ArrayList();ArrayList list = new

    37120编辑于 2023-01-23
  • 来自专栏Java开发

    Spring底层架构源码解析(二)

    有关该篇内容的前置知识可以参考我上篇文章:spring底层源码脉络解析 有关手写简单的实现spring的代码可以参考我的个人仓库:gitee仓库代码 BeanDefiniton BeanDefiniton 是spring源码中比较一个重要的接口,该接口描述了Bena的基本属性,该BeanDefiniton继承了AttributeAccessor, BeanMetadataElement接口,BeanDefiniton (context.getBean("userService")); BeanFactory BeanFactory顾名思义为定义Bean的工厂,当我们使用ApplicationContext时,追踪源码可以发现 在Spring的源码实现中,当我们new一个ApplicationContext时,其底层会new一个BeanFactory出 来,当使用ApplicationContext的某些方法时,比如getBean (),底层调用的是BeanFactory的 getBean()方法。

    19210编辑于 2024-10-21
  • 来自专栏Java开发

    Spring底层架构源码解析(三)

    有关spring的前置知识,可以观看我的上一篇文章spring底层架构源码解析(二) ApplicationContext 接上一篇文章,再将到BeanFactory后不得不提到ApplicationContext ClassPathXmlApplicationContext 同样,在idea的继承图如下,可以发现ClassPathXmlApplicationContext实现了很多的接口 类型转换 在spring的源码中有许多类型转换的工具类 propertyEditorMap = new HashMap<>(); // 表示StringToUserPropertyEditor可以将String转化成User类型,在Spring源码

    11310编辑于 2024-10-21
  • 来自专栏IT码农

    yii2底层源码分析

    Yii2底层分析 我是从入口处分析的。

    1.1K51发布于 2019-09-02
  • 来自专栏Java技术栈

    LinkedHashMap 源码分析,底层竟这么简单!

    LinkedHashMap 是一个键有序的 HashMap,可以将 LinkedHashMap 理解为 LinkList + HashMap。

    58510发布于 2020-02-21
  • 来自专栏一枝花算不算浪漫的专栏

    GuavaCache学习笔记三:底层源码阅读

    源码包:com.google.guava:guava:22.0 jar包下的pcom.google.common.cache包,适用于高并发读写场景,可自定义缓存失效策略。 回到顶部 二、使用方法  2.1 CacheBuilder有3种失效重载模式 1.expireAfterWrite 当 创建 或 写之后的 固定 有效期到达时,数据会被自动从缓存中移除,源码注释如下: 源码注释如下: ? 1 /**指明每个数据实体:当 创建 或 更新 或 访问 之后的 固定值的有效期到达时,数据会被自动从缓存中移除。读写操作都会重置访问时间,但asMap方法不会。 源码注释如下: ? 1 /**指明每个数据实体:当 创建 或 更新 之后的 固定值的有效期到达时,数据会被自动刷新。 前面一节简单演示了google cache的几种用法,本节细看源码

    1.2K20发布于 2018-12-25
  • 来自专栏小工匠聊架构

    Netty Review - 底层零拷贝源码解析

    Pre Netty Review - 直接内存的应用及源码分析 概述 Netty 的零拷贝技术是通过优化数据传输过程中的数据复制操作,以降低系统的开销和提高性能。 源码解析 入口索引 结合我们的Netty线程模型源码图 ,找到入口 。

    28700编辑于 2024-05-26
  • 来自专栏明明如月的技术专栏

    Executors.newCachedThreadPool的底层源码浅析

    首先老规矩,上源码(ps:看美女)。 (类比学习) 另外可以了解一下Executors.defaultThreadFactory(),默认的线程工厂的源码,了解其命名规则。 依然上源码(ps: 你懂得) 了解默认的拒绝策略 /** * The default rejected execution handler */ private static 关于线程池的更多细节可以深入学习java.util.concurrent.ThreadPoolExecutor的源码。 (2)然后尽量去看源码源码的注释比较权威!另外如果懂得超深入,则细看源码,否则大致看看,如本文知道个大概。 (3)另外打断点调试也是学习源码的重要方式,可以断点单步走,可能都学更多(自行探索)。

    64320发布于 2021-08-31
领券