#轮子

轮子:读取config.ini文件

 python:把config.ini文件成map返回defget_conf(conf_file):conf={}ll=list(map(lambdax:x.replace('"','').replace('',''),filter(lambdax:"="inxandnotx.startswith("#"),...

分析轮子(十)- HashMap.java 之概念梳理

注:玩的是JDK1.7版本一:还是原来的风格,先上一下类的继承关系图,这样能够比较清楚的知道此类的相关特性二:HashMap.java的代码比较难看,所以,我看了几天,写的话也分开来写,这样能表达的更清晰,HashMap.java的底层数据结构,本质是单向链表数组,如下所示是单向链中节点的结构信息三:既然HashMap...

分析轮子(八)- List.java 各种遍历方式及遍历时移除元素的方法

注:玩的是JDK1.7版本1:先尝栗子,再分析,代码简单,注释清晰,可自玩一下/***@description:测试集合遍历和移除元素的方式*@author:godtrue*@create:2018-09-13*/publicclassTestTraverseStyle{/***开始循环的基值*/privatestat...

分析轮子(七)- RandomAccess.java

 1:还是先上一个类的继承关系比较图吧!2:看一下RandomAccess.java的源码,空空如也,什么都没有,那她有什么用处呢?/***Markerinterfaceusedby<tt>List</tt>implementationstoindicatethat*theysuppo...

分析轮子(六)- LinkedList.java

注:玩的是JDK1.7版本一:先上类的继承结构图二:再看一下他的底层实现数据结构三:然后从源码中找点好玩的东西 1)双向链表的结构构成元素,头指针、尾指针、节点信息(前向指针、后向指针、节点信息)/***Pointertofirstnode.*Invariant:(first==null&&l...
代码星球 代码星球·2021-02-17

分析轮子(五)- Vector.java

注:玩的是JDK1.7版本一: 先上类图,从类图上看和ArrayList.java非常相像,可查看 分析轮子(一)-ArrayList.java二:然后看源码,发现和ArrayList.java各种实现上也非常的相像,他们的底层数据结构都是数组,并且都可以动态扩展,所以,不再重述了,有兴趣可以查看&...
代码星球 代码星球·2021-02-17

分析轮子(三)- 十进制整数怎么变成无符号二进制的整数的

前言:在 分析轮子(二)-<<,>>,>>(左移、右移、无符号右移)的时候发现十进制数转二进制数的时候,负数的位数是够的,比如:负整数-15的二进制表示是:11111111111111111111111111110001 ,但是正整数15的二进制表示是:1111,...

分析轮子(二)- << ,>>,>> (左移、右移、无符号右移)

前言:写 分析轮子(一)-ArrayList.java 的时候看到源码中有 intnewCapacity=oldCapacity+(oldCapacity>>1);这样的代码,以前也学习过左移、右移,无符号右移三类移位运算符,不过忘记了具体的变化规则,于是就实验了一把,便有了本...

分析轮子(一)-ArrayList.java

前言:之前也看过一些JDK源码,不过没有留下痕迹,经久年月就淡忘了,现在的时机也差不多了,想再看一次,并且记录下来自己的感想,于是从自己使用最多最熟悉的地方开始!并且看的过程中,我希望自己思考一下如下的问题:1:如果让我设计,我怎么玩?2:原作者为什么这样设计?3:它的底层实现是什么玩意?有什么特点?4:平时使用的时候...
代码星球 代码星球·2021-02-17

在npm发布自己造的轮子

提到封装组件,发布到npm,很多同学都会觉得很神秘。但其实,npm包无非就是我们平时写的比较独立且可复用的模块。当然,想要发布,除了基础组件的编写外,还要进行一些包装。下文通过一个简单的案例,和大家一起讨论组件从开发到发布的整个过程。在此承诺,包教包会!一、封装组件封装组件包共有3个步骤:创建组件模板自定义组件内容安装...
代码星球 代码星球·2020-08-16

造轮子 | 怎样设计一个面向协议的 iOS 网络请求库

近期开源了一个面向协议设计的网络请求库MBNetwork,基于Alamofire和ObjectMapper实现,目的是简化业务层的网络请求操作。对于大部分App而言,业务层做一次网络请求通常关心的问题有例如以下几个:怎样在任何位置发起网络请求。表单创建。包括请求地址、请求方式(GET/POST/……)、请求头等……载入...