源码:Java集合源码之:数组与链表(一)

数组和链表是数据结构中最基本的部分。 数组 在java中,数组定义为一种基本类型,其可以通过下标获取到对应位置的数据。那么这种结构的数据,在内存中是怎么存放的呢? 数组在内存中是一段连续的存储单元,每个数据依次放在每个单元中。 分析这种结构,我们可以得出以下几个结论: 创建一个数组,必须声明其长度, ... »

glusterfs 4.0.1 api 分析笔记1

一般来说,我们写个客户端程序大概的样子是这样的: 我们这里按照程序执行的思路,一句一句的解读程序的执行过程。 1、 fs2 = glfs_new (argv[1]); 1.1 这句内部定义如下:在(glfs.c中)pub_glfs_new 到这里,基本内存资源都已经初始化完毕了,event_pool ... »

lodash源码分析之数组的差集

外部世界那些破旧与贫困的样子,可以使我内心世界得到平衡。 ——卡尔维诺《烟云》 本文为读 lodash 源码的第十七篇,后续文章会更新到这个仓库中,欢迎 star: "pocket lodash" gitbook也会同步仓库的更新,gitbook地址: "pocket lodash" 作用与用法 可 ... »

Groovy实现原理分析——准备工作

欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: GitHub地址: 知乎地址: 首先说明一下为什么要写这样一系列分析Groovy实现原理的博文。我之前在华为大数据部门曾维护过一份规则引擎的项目,该项目说白了就是一种DSL(Domain Specified ... »

以太坊源码机制:挖矿

狗年吉祥,开工利是,我们继续研究以太坊源码。从本篇文章开始,我们会深入到以太坊核心源码中去,进而分析与研究以太坊的核心技术。 关键字:拜占庭,挖矿,矿工,分叉,源码分析,uncle叔块,agent,worker,事件监听 本文基于go ethereum 1.7.3 stable源码版本。源码范围主要 ... »

select, poll, epoll的实现分析

select, poll, epoll都是Linux上的IO多路复用机制.知其然知其所以然,为了更好地理解其底层实现,这几天我阅读了这三个系统调用的源码. 以下源代码摘自Linux4.4.0内核. 预备知识 在了解IO多路复用技术之前,首先需要了解Linux内核的3个方面. 1.等待队列waitqu ... »

Laravel5.5核心架构理解

1、依赖注入 方法传入组件名,框架会自动实例化,方法内可直接使用 例如最常用的requert对象 2、服务容器 其实,Laravel 的核心就是一个 IoC 容器,Laravel 的核心本身十分轻量,并没有什么很神奇很实质性的应用功能。很多人用到的各种功能模块比如 Route(路由)、Eloquen ... »

2、jQuery的一些静态方法

上次粗略说了jQuery的整体结构,这次挑一些静态方法先说一下吧 一、noConflict函数 这个函数是个比较有意思的函数,基本上很少用到,之所以说他是因为这个函数在最下面,太显眼了,先把他解决掉。 noConflict函数是jQuery用来解决$符号和jQuery版本冲突的。如下: 可以看出jQ ... »

lodash源码分析之baseFindIndex中的运算符优先级

我悟出权力本来就是不讲理的——蟑螂就是海米;也悟出要造反,内心必须强大到足以承受任何后果才行。 ——北岛《城门开》 本文为读 lodash 源码的第十篇,后续文章会更新到这个仓库中,欢迎 star: "pocket lodash" gitbook也会同步仓库的更新,gitbook地址: "pocke ... »

LinkedList 源码分析(JDK 1.8)

1.概述 LinkedList 是 Java 集合框架中一个重要的实现,其底层采用的双向链表结构。和 ArrayList 一样,LinkedList 也支持空值和重复值。由于 LinkedList 基于链表实现,存储元素过程中,无需像 ArrayList 那样进行扩容。但有得必有失,LinkedLi ... »

ArrayList 源码详细分析

1.概述 是一种变长的集合类,基于定长数组实现。ArrayList 允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。另外,由于 ArrayList 底层基于数组实现,所以其可以保证在 复杂度下完成随机查找操作。其他方面,Ar ... »

lodash源码分析之缓存使用方式的进一步封装

在世界上所有的民族之中,支配着他们的喜怒选择的并不是天性,而是他们的观点。 ——卢梭《社会与契约论》 本文为读 lodash 源码的第九篇,后续文章会更新到这个仓库中,欢迎 star: "pocket lodash" gitbook也会同步仓库的更新,gitbook地址: "pocket lodas ... »

Android查缺补漏(View篇)--事件分发机制源码分析

在上一篇博文中分析了事件分发的流程及规则,本篇会从源码的角度更进一步理解事件分发机制的原理,如果对事件分发规则还不太清楚的童鞋,建议先看一下上一篇博文 "《Android查缺补漏(View篇) 事件分发机制》" ,先来看一下本篇的分析思路,一会儿会按照事件传递的顺序,针对以下几点进行源码分析: Ac ... »

HashMap 源码详细分析

一、概述 本篇文章我们来聊聊大家日常开发中常用的一个集合类 。HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对 ... »

lodash源码分析之缓存方式的选择

每个人心里都有一团火,路过的人只看到烟。 ——《至爱梵高·星空之谜》 本文为读 lodash 源码的第八篇,后续文章会更新到这个仓库中,欢迎 star: "pocket lodash" gitbook也会同步仓库的更新,gitbook地址: "pocket lodash" 前言 在《 "lodash ... »

Java集合干货——LinkedList源码分析

前言 在上篇文章中我们对ArrayList对了详细的分析,今天我们来说一说LinkedList。他们之间有什么区别呢?最大的区别就是底层数据结构的实现不一样,ArrayList是数组实现的(具体看上一篇文章),LinedList是链表实现的。至于其他的一些区别,可以说大部分都是由于本质不同衍生出来的 ... »