202110-12 JDK集合源码之解析TreeMap(二) 目录删除元素删除再平衡删除元素举例二叉树的遍历TreeMap的遍历总结删除元素删除元素本身比较简单,就是采用二叉树的删除规则。如果删除的位置有两个叶子节点,则从其右子树中取最小的元素放到删除的位置,然后把删除位置移到替代元素的位置,进入下一步。如果删除的位置只有一个叶子节点(有可能是经过第一步转换后的删除位置),则把那个叶子节点作为替代元素,放到删除的位置,然后把这个叶子节点删除。如果删除的... 继续阅读 >
202110-12 JDK集合源码之解析TreeMap(一) 目录简介继承体系存储结构源码解析属性Entry内部类构造方法get(Objectkey)方法特性再回顾左旋右旋插入元素插入再平衡插入元素举例总结简介TreeMap使用红黑树存储元素,可以保证元素按key值的大小进行遍历。继承体系TreeMap实现了Map、SortedMap、NavigableMap、Cloneable、Serializable等接口。SortedMap规定了元素可以按key的大小来遍历,它定义了一些返回部分map的方法。publicinterfaceSortedMap<K,V>extendsMap<K,V>{... 继续阅读 >
202104-25 React事件机制源码解析 Reactv17里事件机制有了比较大的改动,想来和v16差别还是比较大的。本文浅析的React版本为17.0.1,使用ReactDOM.render创建应用,不含优先级相关。原理简述React中事件分为委托事件(DelegatedEvent)和不需要委托事件(NonDelegatedEvent),委托事件在fiberRoot创建的时候,就会在root节点的DOM元素上绑定几乎所有事件的处理函数,而不需要委托事件只会将处理函数绑定在DOM元素本身。同时,React将事件分为3种类型——discreteE... 继续阅读 >
202009-29 Laravel框架源码解析之模型Model原理与用法解析 本文实例讲述了Laravel框架源码解析之模型Model原理与用法。分享给大家供大家参考,具体如下:前言提前预祝猿人们国庆快乐,吃好、喝好、玩好,我会在电视上看着你们。根据单一责任开发原则来讲,在laravel的开发过程中每个表都应建立一个model对外服务和调用。类似于这样namespaceApp\Models;useIlluminate\Database\Eloquent\Model;classUserextendsModel{protected$table='users';}解析Laravel的数据操作分两种DB... 继续阅读 >
202009-29 Laravel框架源码解析之入口文件原理分析 本文实例讲述了Laravel框架源码解析之入口文件原理。分享给大家供大家参考,具体如下:前言提升能力的方法并非使用更多工具,而是解刨自己所使用的工具。今天我们从Laravel启动的第一步开始讲起。入口文件laravel是单入口框架,所有请求必将经过index.phpdefine('LARAVEL_START',microtime(true));//获取启动时间使用composer是现代PHP的标志require__DIR__.'/../vendor/autoload.php';//加载composer->autoload.php加载启... 继续阅读 >
202009-29 Laravel框架源码解析之反射的使用详解 本文实例讲述了Laravel框架源码解析之反射的使用。分享给大家供大家参考,具体如下:前言PHP的反射类与实例化对象作用相反,实例化是调用封装类中的方法、成员,而反射类则是拆封类中的所有方法、成员变量,并包括私有方法等。就如“解刨”一样,我们可以调用任何关键字修饰的方法、成员。当然在正常业务中是建议不使用,比较反射类已经摒弃了封装的概念。本章讲解反射类的使用及Laravel对反射的使用。反射反射类是PHP内部类,无需... 继续阅读 >