源码

ArrayList源码解析

我的梦境 提交于 2020-02-27 06:41:50
ArrayList源码解析 数组介绍 ArrayList源码分析 构造方法 public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; } public ArrayList(int initialCapacity) { if (initialCapacity > 0) { this.elementData = new Object[initialCapacity]; } else if (initialCapacity == 0) { this.elementData = EMPTY_ELEMENTDATA; } else { throw new IllegalArgumentException("Illegal Capacity: "+ initialCapacity); } } public ArrayList(Collection<? extends E> c) { elementData = c.toArray(); if ((size = elementData.length) != 0) { // c.toArray might (incorrectly) not return Object[] (see 6260652) if (elementData.getClass() !=

BlueStore源码分析之FreelistManager

旧巷老猫 提交于 2020-02-27 05:55:38
前言 BlueStore直接管理裸设备,需要自行管理空间的分配和释放。 Stupid 和 Bitmap 分配器的结果是保存在内存中的,分配结果的持久化是通过 FreelistManager 来做的。 一个block的状态可以为 占用 和 空闲 两种状态,持久化时只需要记录一种状态即可,便可以推导出另一种状态,BlueStore记录的是空闲block。主要有两个原因:一是回收空间的时候,方便空闲空间的合并;二是已分配的空间在Object中已有记录。 FreelistManager最开始有 extent 和 bitmap 两种实现,现在默认为bitmap实现,extent的实现已经废弃。空闲空间持久化到磁盘也是通过RocksDB的Batch写入的。FreelistManager将block按一定数量组成段,每个段对应一个k/v键值对,key为第一个block在磁盘物理地址空间的offset,value为段内每个block的状态,即由0/1组成的位图,1为空闲,0为使用,这样可以通过与1进行异或运算,将分配和回收空间两种操作统一起来。 目录 通用接口 数据结构 初始化 Merge Allocate Release <a name="chapter1"></a>通用接口 FreelistManager最主要的接口就是allocator和release。 virtual void

源码分析Dubbo集群容错策略

最后都变了- 提交于 2020-02-27 04:30:48
前面的文章,已经单独对服务发现(Directory、RegistryDirectory)、路由机制(Router)、负载均衡机制( LoadBalance ),本节将重点分析集群容错机制 ( AbstractClusterInvoker), AbstractClusterInvoker 就是将上述机制融合在一起,整个集群容错中,上述组件扮演的角色见下图所示,本文将重点分析 AbstractClusterInvoker 是如何融合这些组件的。 AbstractClusterInvoker#invoke @Override public Result invoke(final Invocation invocation) throws RpcException { checkWhetherDestroyed(); LoadBalance loadbalance = null; List<invoker<t>> invokers = list(invocation); // @1 if (invokers != null && !invokers.isEmpty()) { loadbalance = ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(invokers.get(0).getUrl()

mac下编译openjdk1.9及集成clion动态调试

倖福魔咒の 提交于 2020-02-27 03:47:50
晚上被小伙伴问道如何使用ide进行jvm源码的调试,刚好前段时间花了点时间折腾了一下,mac最新版本下jvm9顺利编译通过,并且可以完美集成clion进行调试(支持windows),下面记录一下全过程,如果想看效果的话,可以直接拉到 集成到clion进行调试 小节末尾 mac下openjdk源码编译过程 准备编译环境准备 我的mac的版本如下 image.png 由于openjdk1.9之前的版本对mac下编译支持得不是很流畅,所以这篇文章选择openjdk1.9 编译之前,首先你需要准备 homebrew,homwbrew是mac下的包管理器,如果你的mac上没有安装,可以按照下面的方式来安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" homwbrew下载完成之后,接下来准备编译环境 首先安装openjdk的版本管理工具mercurial 然后安装ccache和freetype,ccache用来加速编译,freetype在编译过程也会依赖到 上述准备编译环境的脚本为 brew install mercurial brew install ccache brew install freetype

(素材源码)猫猫学IOS(十九)UI之QQ好友列表

二次信任 提交于 2020-02-27 03:10:16
猫猫分享,必须精品 素材代码地址: http://download.csdn.net/detail/u013357243/8593271 原文地址: http://blog.csdn.net/u013357243?viewmode=contents 先看效果图 哈哈,这次猫猫给来个动态的图片,这个看起来带劲 实现思路 首先建立模型 这里用到的是一个双层的模型。 cell的实现 这里一看其实就知道是一个tableView,我们自定义cell实现细节 headerView的实现 每一组的标题头其实都是headerVIew这里都是按钮需要我们自己设计。 ps:新建iOS交流学习群:304570962 可以加猫猫QQ:1764541256 或则微信znycat 让我们一起努力学习吧。 原文: http://blog.csdn.net/u013357243?viewmode=contents 来源: https://www.cnblogs.com/znycat/p/4521038.html

带你逐行分析 HashMap 源码

邮差的信 提交于 2020-02-26 23:46:23
带你逐行分析 HashMap 源码 一、写在前面 相信读者也看过了不少讲解 HashMap 源码的文章了,笔者认为,一切脱离源码去讲原理的都是泛泛而谈。一些所谓的原理大都是阅读源码之后的个人概括,这些概括参差不齐,再加上没有阅读源码,读者们是很难有切身体会的。正因如此,笔者逐行分析了 HashMap 的源码后,开启了本场 Chat。 笔者在阅读 HashMap 源码的时候,曾对每个内部属性,每个内部方法和方法调用逻辑做了简要注释,但在整理成文的时候,还是遇到了略微的困难。对于一些内部属性的解释,需要结合它在一些方法的使用中发挥的作用来综合说明,笔者打算按照从浅到深的顺序,先带读者熟悉 HashMap 的宏观设计思想,再通读一遍源码,然后讲解源码的设计细节。要让读者边看文字边对照源码进行学习,形成自己的领悟和体会,避免造成笔者一人的泛泛而谈。 无论自己的领悟是深是浅,终归是自己的,无论别人的领悟多么高深,那也是别人的。希望每个读者都能有自己的收获和体会。 Java 版本 $ java -version java version "1.8.0\_211" Java(TM) SE Runtime Environment (build 1.8.0\_211-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed

开源分布式数据库中间件 DBLE

落爺英雄遲暮 提交于 2020-02-26 23:08:52
DBLE 是企业级开源分布式中间件,江湖人送外号 “MyCat Plus”;以其简单稳定,持续维护,良好的社区环境和广大的群众基础得到了社区的大力支持; DBLE官方网站:https://opensource.actionsky.com 可以详细了解DBLE的背景和应用场景,本文不涉及到的细节都可在官方文档获得更细节都信息;对于刚了解到同学,可以以本文为快速入门基础 DBLE官方项目:https://github.com/actiontech/dble 如对源码有兴趣或者需要定制的功能的可以通过源码编译 DBLE下载地址:https://github.com/actiontech/dble/releases 建议下载最新的releases版本,下载tar压缩包即可,如有源码编译需求的,可以下载源码包 DBLE社区交流:669663113 来源: https://www.cnblogs.com/qiumingcheng/p/10976540.html

代码生成器——开放源代码

China☆狼群 提交于 2020-02-26 22:31:02
文章目录 引言 推荐源码的查看方式 运行方式 运行效果 相关链接 引言   开发代码生成器已经有比较长一段时间了,一直也在断断续续得更新和维护,使用人数每天也有零星的增长。生成器开发之初,主要是为了方便自己,后来发布到网上,没想到有人使用。而且提出建议,就这样一步步走到现在。今天决定把生成器的源码开放出去,发布到 码云 上(链接在文末),有兴趣的朋友可以去下载查看,或者提出修改建议,不胜感激。 推荐源码的查看方式   如果有朋友查看源码的话,因为全部的代码较为杂乱,推荐直接从 main 包下的 MainMethod 看起,这是代码生成器的核心逻辑部分,加载了 freeMarker模板 以及 设置模板中的参数 , ftlFiles 文件夹下存放了所有的 freeMarker模板 。    codeMaker 包下的 MakeCode 是生成器的入口类,在这里获取了用户填入的各种参数以及监听按钮的事件, DataBaseConfig 是数据库配置的入口类, TablesQuery 是多表查询配置的入口类。   以上便是代码生成器最为核心的部分。 来源: CSDN 作者: 小螺旋丸 链接: https://blog.csdn.net/m0_37719874/article/details/104517445

StringBuilder源码分析

橙三吉。 提交于 2020-02-26 16:42:14
StringBuilder源码分析 String,StringBuffer,StringBuilder // 1.String为什么是不可变的 private final char value []; // 2.StringBuilder,Buffer为什么可变 private transient char [] toStringCache ; // 3.StringBuffer为什么是线程安全的 public synchronized StringBuffer append ( String str ) ; // 类的继承实现关系 // StringBuilder -> AbstractStringBuilder -> CharSquence public final class StringBuilder extends AbstractStringBuilder implements java . io . Serializable , CharSequence { 1.字段 /** * The value is used for character storage. */ char [] value ; ​ /** * The count is the number of characters used. */ int count ; 2.构造方法 public

PHPYUN人才招聘系统源码V5.0.1 beta(强化版)2020-01-07日补丁/开源代码/小程序/海报功能使用

南笙酒味 提交于 2020-02-26 16:27:00
新增:好友助力 新增:网络招聘会 新增:身份切换控制开关 新增:PC端城市、职位搜索目录式伪静态 新增:职位描述样本 新增:聊天套餐 新增:店铺招聘按天收费 新增:手机端注册增加隐私政策等内容(针对最新政策文件) 优化:CRM整体业务流程 优化:简历创建、职位创建相关选项 优化:城市、职位分类 关键字自动匹配 优化:增值服务、赠送优惠券引导提醒 优化:手机端简历创建后下一步引导 优化:PC端会员中心职位管理 优化:前台简历搜索展示 优化:企业基本信息地图设置 优化:招聘会展示 优化:老版本手机端职位做301跳转 优化:OSS开启 本地不再预存图片文件 优化:百聘职位默认60天结束期 优化:公告增加到期时间 优化:微信模板消息点击自动登录会员中心 优化:后台数据统计按当月时间统计(原始默认30天) 修复:后台目录修改导致后台图片无法上传 修复:后台分配站点偶尔无法展示 修复:友情链接添加后不显示 修复:数据调用简历排序规则 修复:首页赏金职位链接错误 修复:企业环境展示排序 修复:后台营销邮件推广发送问题 修复:取消GIF类图片强制压缩 修复:激活企业身份,套餐查询错误 修复:分站域名信息配置不当导致无法进入后台 修复:企业导出下载简历姓名显示问题 修复:手机端快速投递简历 验证码提示问题 修复:简历创建教育完善度判断 修复:手机端附近职位大小写错误 修复:手机端急聘标志错位 修复