E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
【源码解读】
Vue
源码解读
(2)—— Vue 初始化过程
当学习成为了习惯,知识也就变成了常识。感谢各位的点赞、收藏和评论。新视频和文章会第一时间在微信公众号发送,欢迎关注:李永宁lyn文章已收录到github仓库liyongning/blog,欢迎Watch和Star。目标深入理解Vue的初始化过程,再也不怕面试官的那道面试题:newVue(options)发生了什么?找入口想知道newVue(options)都做了什么,就得先找到Vue的构造函数是在
·
2022-02-22 08:18
Vue
源码解读
(2)—— Vue 初始化过程
当学习成为了习惯,知识也就变成了常识。感谢各位的点赞、收藏和评论。新视频和文章会第一时间在微信公众号发送,欢迎关注:李永宁lyn文章已收录到github仓库liyongning/blog,欢迎Watch和Star。目标深入理解Vue的初始化过程,再也不怕面试官的那道面试题:newVue(options)发生了什么?找入口想知道newVue(options)都做了什么,就得先找到Vue的构造函数是在
李永宁
·
2022-02-22 08:00
SDWebImage(3.8.2)
源码解读
首先看一下SDWebImage的架构。其实GitHub上面的架构图非常清楚的解释了整个SDWebImage的工作原理SDWebImageClassDiagram.png整体的关键步骤是这样的:一、UIImageView通过SDWebImage请求一个URL获取图片二、SDWebImage根据这个URL先去内存中寻找,如果找不到去硬盘中寻找(这里忽略一些ignorecache的case)三、如果第二
Pikachuqiu
·
2022-02-22 04:25
PostgreSQL
源码解读
(56)- 查询语句#41(make_one_rel函数#6-索引扫描路径#2)
这一小节主要介绍索引扫描成本估算中get_index_paths函数的主逻辑及其子函数build_index_paths,下一小节介绍子函数build_index_paths中的create_index_path。一、数据结构IndexClauseSet用于收集匹配索引的的条件语句/*Datastructureforcollectingqualclausesthatmatchanindex*/ty
EthanHe
·
2022-02-22 03:13
vue
源码解读
--作用域插槽(parse和codegen)
目录导航本节示例代码如下parse父组件根据之前的分析,我们知道,文本节点会调用chars方法进行处理,在当前示例即对{{slotProps.msg}}进行解析,解析后的值如下由之前分析可知,每次匹配到闭合标签都会执行closeElement函数,进入processElement函数并在该函数中对slot进行解析,这将执行processSlotContent函数,本次template标签存在故进入
三岁就会写BUG
·
2022-02-22 02:35
深入浅出 setState 原理篇
我知道setState被设计成“异步”是为了性能,但是涉及到
源码解读
我就歇菜了;我知道如何让它同步,但是遇到真实的代码情况时,却不知道如何下手。
·
2022-02-21 21:54
Vue
源码解读
(1)—— 前言
当学习成为了习惯,知识也就变成了常识。感谢各位的点赞、收藏和评论。新视频和文章会第一时间在微信公众号发送,欢迎关注:李永宁lyn文章已收录到github仓库liyongning/blog,欢迎Watch和Star。简介专栏的第一篇,主要介绍专栏的目的、规划、适用人群,以及准备工作和扫盲的基础知识。前言最近在准备一些Vue系列的文章和视频,之前Vue的源码也读过好几遍,但是一直没写相关的文章,所以最
·
2022-02-21 08:24
Vue
源码解读
(1)—— 前言
当学习成为了习惯,知识也就变成了常识。感谢各位的点赞、收藏和评论。新视频和文章会第一时间在微信公众号发送,欢迎关注:李永宁lyn文章已收录到github仓库liyongning/blog,欢迎Watch和Star。简介专栏的第一篇,主要介绍专栏的目的、规划、适用人群,以及准备工作和扫盲的基础知识。前言最近在准备一些Vue系列的文章和视频,之前Vue的源码也读过好几遍,但是一直没写相关的文章,所以最
李永宁
·
2022-02-21 07:00
vue
源码解读
--event(原生事件-parse)
目录导航本节的示例代码如下parsediv开始标签的解析经过之前对编译的分析,parse的过程将会执行parseHTML对template对应的html字符串进行遍历处理,并在正则匹配到开始标签时执行parseStartTag函数对标签中的属性进行处理(A)标红的位置将匹配到标签中的@click="onRootConsole",match.attrs为(B)将match返回,回到parseHTML
三岁就会写BUG
·
2022-02-20 23:08
autorelease pool
源码解读
一autoreleasepool到底是啥?使用clang-rewrite-objcmain.m将OC代码转为main.cpp文件intmain(intargc,constchar*argv[]){@autoreleasepool{//insertcodehere...NSLog(@"Hello,World!");}return0;}转换log日志打开cpp代码随后我们可以搜索到对应的extern"
搞好关系
·
2022-02-20 11:15
vue
源码解读
--组件更新(父组件的更新流程)
本节我们的示例如下app.vuechild.vue当点击按钮,切换flag的值,此时将触发get收集依赖并触发set向dep分别notify,这将在下一个tick中触发更新,执行patch,接收新旧两个vnode上一节,我们分析过,组件更新的分界点为sameVnode当前组件未定义key、tag为main、非注释节点、都有data定义。故returntrue。调用patchVnode,入参为:旧的
三岁就会写BUG
·
2022-02-20 01:28
java多线程与高并发(九)线程池与
源码解读
1.回顾之前说的Executor作用是把线程的定义和执行分开,主要是用来做线程的执行接口,在他下面还有一个控制着线程生命周期的ExecutorService,然后才是各种各样的ThreadPoolExecutor,把线程池作为一个执行的单元,给他单独出一个类,下面是他的七个参数corePoolSize核心线程数maxmumPoolSize最大线程数keepAliveTime生存时间TimeUnit
小偷阿辉
·
2022-02-19 19:44
Spring的@Order
例如:@Order(-1)优先于@Order(0)@Order(1)优先于@Order(2)1️⃣@Order的注解
源码解读
@Retention(Retention
日常更新
·
2022-02-19 17:50
ButterKnife
源码解读
Butterknife是一款利用注解方式实现的框架,为Android项目提供了较好的解耦。下面针对这款大神作品,做下简单分析。核心成员介绍1.Butterknife-annotations注解库,里面包含了所有用到的注解类例如BindView.java@Retention(RUNTIME)@Target(FIELD)public@interfaceBindView{/**ViewIDtowhich
tomcat_pikaqiu
·
2022-02-19 13:40
dyld
源码解读
dyld全称是thedynamiclinkeditor。他是苹果的动态链接器,是苹果操作系统一个重要的组成部分,系统加载、链接mach-O文件,就是由dyld负责的。前面聊到的应用启动加载过程、类、分类加载,都不可避免的触及dyld,所以了解dyld源码可以让我们更好的理解iOS应用的工作原理。本文篇幅较长,都是源码和堆栈分析,比较枯燥,因此先上结论:加载从_dyld_start开始进入dyld:
正_文
·
2022-02-19 08:02
vue
源码解读
--响应式的创建过程
目录导航本节的示例如下(app.vue组件在main.js中引入)当newvue的时候将执行init方法,在该方法中将调用initState这里有两个地方比较重要,一个是initProps,一个是initData我们本节没有props数据,故着重看data是如何被set为响应式的我们示例的data是一个函数,故调用getData方法,传入data和vm实例该方法将修正this指向,使其指向vm实例
三岁就会写BUG
·
2022-02-18 22:55
006.OKHttp源码分析
okhttp(2).pngOkHttp3
源码解读
OKHttp源码解析(一)热修复框架AndFix
春江潮
·
2022-02-18 05:59
vue-router
源码解读
--导航守卫
目录导航上一节,我们在分析路由过渡过程中,有提到,queue是我们的钩子数组,iterator是具体的每一个钩子,runQueue则是钩子函数的执行者本节示例代码如下首先,我们先看下queue数组有哪些成员成员一,来自于extractLeaveGuards函数,入参为即将失活的路由,如从/foo——>/info/child时,入参为/foo对应的路由映射表中的record,即调用extractGu
三岁就会写BUG
·
2022-02-17 11:57
yolox Head-Decoupled head
源码解读
目录前言yolox网络结构yoloxhead网络结构head组件及对应源码解码前言yoloxbackbone部分介绍yoloxneck部分介绍yolox:https://github.com/Megvii-BaseDetection/YOLOXyolox详细解读可参考:https://jishuin.proginn.com/p/763bfbd628ceyolox网络结构yoloxhead网络结构h
Mr.Q
·
2022-02-16 09:07
YOLOX
YOLO
SDWebImage
源码解读
之管理类SDWebImageManager
本章开始将介绍SDWebImage库中协调核心功能(图片下载,图片缓存)使用的管理单例类SDImageCache,通过对SDWebImage库中底层的关键类(SDWebImageDownloader,SDWebImageDownloaderOperation,SDImageCache)的一步步解读,这时候的SDWebImageManager的解读就容易很多,该类中的主要功能代码如下:在代码中的开始
jiangjunwy
·
2022-02-16 04:52
vue
源码解读
--组件更新流程
经过之前章节的分析,我们知道,组件的render将触发update并最终执行patchrender关键信息如下框红一,使用$vnode保存组件的占位节点框红二,使用parent指向占位节点update关键信息如下框红1,在组件初次渲染,使用_vnode保存了其渲染vnode,因此当更新时可以拿到将新旧vnode传递给patch做更新patch关键信息如下由于在update中传递的新旧vnode有值
三岁就会写BUG
·
2022-02-15 19:04
mybatis
源码解读
之executor包懒加载功能
ProxyFactory是创建代理类的工厂接口,其中的setProperties方法用来对工厂进行属性设置,但是mybatis内置的两个实现类都没有实现该接口,所以不支持属性设置。createProxy方法用来创建一个代理对象publicinterfaceProxyFactory{ //设置工厂属性 defaultvoidsetProperties(Propertiesproperties){ }
·
2022-02-15 18:49
mybatis
源码解读
之executor包语句处理功能
1.mybatis对多语句类型的支持在mybatis映射文件中传参数,主要用到#{}或者${}.#{}:表示使用这种符号的变量会以预编译的形式赋值到sql片段中。${}:表示使用这种符号的变量会以字符串的形式直接插到sql片段中。mybatis中支持三种语句类型,不同语句类型支持的变量符号不同。mybatis的三种类型如下:STATEMENT:这种语句类型中,只会对sql片段进行简单的字符串拼接。
·
2022-02-15 18:49
并发编程之ConcurrentHashMap
源码解读
-1.7
上一篇文章并发编程之ConcurrentHashMap
源码解读
-1.8中,我们详细解读了JDK1.8中ConcurrentHashMap的源码。
默写流年
·
2022-02-15 07:38
Aspects
源码解读
Aspects
源码解读
1.Aspects简介Aspects是一种面向切面编程,相对于继承而已,无需改动目标源码文件,做到无侵入式,千言万语不如看code明显:[testControlleraspect_hookSelector
青花瓷的平方
·
2022-02-15 06:37
Handler工作原理与
源码解读
前言·在Android多线程开发场景中Handler消息机制十分常用·Handler类是Android操作系统为开发者封装的能异步处理消息的辅助类·本人的水平有限,如果发现错误或不足恳请指正,谢谢1.要了解消息机制,首先要了解消息处理过程中的相关类。·Handler:用来发送和处理消息·MessageQueue:消息队列,用于存放Message实体(采用单链表的数据结构)·Looper:消息循环,
陈xinyu
·
2022-02-15 01:01
vue
源码解读
--Vue.set(Object)
目录导航犹记得之前面试的时候被问过一个问题,说如果我在某个方法内对某个对象扩展一个键,是否会触发更新?为什么?怎么解决?当时只知道不会触发且可以使用Vue.set方法来让其触发更新,但是却并不知道底层到底是怎么实现的先来看下示例按照我的预期,我希望在两秒钟之后打印出pppp,同时在页面上渲染出9999字样。但是很遗憾,当两秒之后只打印了pppp,而9999并没有被更新到dom上,我们将代码修改成如
三岁就会写BUG
·
2022-02-14 19:37
vue
源码解读
--组件更新(子组件的更新流程)
目录导航上一节我们分析到,vue在diff过程中将对子组件进行更新,调用子组件的prepatch,继而执行updateChildComponent。在updateChildComponent做props更新过程中将触发set发布广播触发watcher的update,继而执行子组件的patch,传入的新旧节点为:上一次渲染vnode、当前渲染vnode组件节点是没有节点类型的,故isRealElem
三岁就会写BUG
·
2022-02-14 16:07
Java多线程——无锁思想/
源码解读
:Atomic
原子类型原子类型在java.util.concurrent.atomic包下有四种类型(每种各3个类):基本类型AtomicInteger:原子操作整数类型AtomicBoolean:基本同上,操作布尔类型AtomicLong:基本同上,操作Long类型引用类型AtomicReference:引用普通的对象,在并发场景下修改对象时保证线程安全AtomicStampedReference:在Atom
阿文Forget
·
2022-02-14 15:50
JAVA多线程
JAVA锁
java
开发语言
后端
无锁
Atomic
大众点评(redux架构)
action)//在处理器中放置上次保存的状态和即将要做的行为state最后的状态如果用react发送ajax请求action=>发起Ajax请求reducer=>处理json数据state=>渲染到UI
源码解读
余生筑
·
2022-02-14 10:40
vue
源码解读
--计算属性
目录导航这一节,我们的示例代码如下默认情况下页面将渲染出"default",当我们第一次点击onChangeIndex函数后将显示"三岁就会写bug",同时打印出''update'',当再次点击则页面不会有变化,但是仍然打印出"update";当点击onChangeName后页面展示"三岁就会写bug哦",同时打印"update",当再次点击时,则页面无变化同时不会打印"update".那么为什么
三岁就会写BUG
·
2022-02-14 08:31
yolov1-v5学习笔记及
源码解读
目录深度学习网络分类评价指标原理yolov1yolov2yolov3yolov4yolov5
源码解读
(v3为例)深度学习网络分类深度学习经典检测方法通常分为two-stage(两阶段):Faster-rcnnMask-Rcnn
小屋*
·
2022-02-14 07:31
yolo
论文学习
计算机视觉
深度学习
vue
源码解读
-update如何将vnode转为dom
目录导航我们在分析mount时候,最后抛出了两个问题,其中一个就是update函数拿到render生成的vNode后做了什么?首先打开src\core\instance\lifecycle.js,找到_update函数,该函数在初始化时被挂载至vue该函数的入参为和false向下走,prevEl缓存了一份;vm指向vue;prevVnode=undefinedif(!prevVnode)取值为tr
三岁就会写BUG
·
2022-02-14 04:43
vue
源码解读
--nextTick
目录导航上一节通过分析我们知道,当执行flushSchedulerQueue时,会触发watcher的get方法从而调用updateComponent去重新render重新update那么,flushSchedulerQueue是何时被执行的呢?当我们调用nextTick时,将flushSchedulerQueue函数作为参数传入,并向callbacks保存了一份;代码向下执行timerFunc方
三岁就会写BUG
·
2022-02-13 20:05
vue
源码解读
--props(规范化)
目录导航本节我们的示例代码如下app组件如下child组件如下desp组件如下在组件init过程中会执行mergeOptions,在这一过程中会调用normalizeProps做一些props相关的规范化处理child组件props=['name','nick-name']定义res,这将作为最终规范化后的键值对对象替代原先的props当前是数组,进入if判断,执行while循环分别拿到数组的两个
三岁就会写BUG
·
2022-02-13 17:49
Android
源码解读
源码解读
系列http://gityuan.com/android/https://blog.csdn.net/qq_23547831/article/details/50696046contextactivityservicebroadcastbinder
Fitz_Lee
·
2022-02-13 17:17
8.Thrift指南 thrift go
源码解读
3
前言:在阅读服务端处理业务之前,先来看下thrift工具生产的代码以及处理流程⚠️thriftgo源码版本0.11.0thrift工具生成的代码处理流程1.thrift工具生成的代码1.1目录结构#生成命令thrift-out.-r--gengouser.thrift1.2user文件结构User服务接口UserClient客户端需要实现UserProcessor服务端业务处理方法集合UserGe
parker7
·
2022-02-13 14:42
vue
源码解读
--Vue.set(Array)
目录导航上一节我们在分析Object类型时留了一个疑问,为什么调用数据的方法直接就可以使得触发更新?先看下本节的示例和上一次一样,代码不会如我们期望的那样在两秒后更新为9999,仍然需要调用Vue.set方法才行上一节我们说过,如果是数组的话,将执行以下逻辑通过Math.max重置数组的长度,如果是新增则扩大1否则不变调用数组的splice,然后over!!!那么,为啥这样就行了呢?我瞅着它也没干
三岁就会写BUG
·
2022-02-13 02:45
Java 集合框架掌握 Map 和 Set 的使用(内含哈希表
源码解读
及面试常考题)
目录1.搜索1.1场景引入1.2模型2.Map2.1关于Map的介绍2.2关于Map.Entry的介绍2.3Map的常用方法说明2.4关于HashMap的介绍2.5关于TreeMap的介绍2.6HashMap和TreeMap的区别2.7Map使用示例代码3.Set3.1关于Set的介绍3.1Set的常用方法说明3.3关于TreeSet的介绍3.4关于HashSet的介绍3.5TreeSet和Has
·
2022-02-12 19:27
vue3
源码解读
--diff
目录vue2源码vue3源码前言diff作为前端为数不多的算法实例,一直以来都被津津乐道。之前了解过vue2的实现过程:它采用双端比较,先从前往后比较,复用同类型节点,遇到不同类型时停止,从后先向前比对,最后再交叉对比但是之前参读的并不够深入,比如对其如何算出哪些节点是要移除的,哪些是要移动的等今天带着查漏补缺的目的来学习下vue3,看其是否对diff有所优化并彻底搞懂之前遗留下来的懵懂源码定位由
习惯水文的前端苏
·
2022-02-12 17:45
vue
源码解读
-配置合并
目录导航这一节我们要分析的示例如下我们在init的过程中,曾经看到过这样一句注释代码,即表示该if...else逻辑执行的就是一些配置的合并通过之前的分析,我们知道在update过程中,当存在子元素为component时会执行子组件的init过程,此时的options._isComponent为true,执行initInternalComponent函数执行组件的配置合并,那么理所当然的,在els
三岁就会写BUG
·
2022-02-12 08:21
vue-router
源码解读
--init过程
目录导航经过上一节分析,我们知道vueRouter向组件的beforeCreate中混入了相关逻辑,并执行了一些初始化工作我们知道,路由在执行安装过程中会向install函数挂载静态属性installed,若不存在则说明没有被调用,那么极大可能是用户未使用vue.use注入路由this.apps中保存着所有的组件实例,这是因为路由是可以有多个实例的,这意味着我们可以在特定的组件加载时去注册一些路由
三岁就会写BUG
·
2022-02-12 03:25
React Hooks在SD-WAN项目中实践
利用hooks进行钩子方式的对数据进行了组件间的流向组织,sdwan项目中都是基于函数式组件的封装,本文为sdwan项目中的reacthooks的应用实践目录添加警告规则弹窗组件实践ReactHooks
源码解读
维李设论
·
2022-02-11 18:04
源码学习之Mybatis
Mybatis
源码解读
1源码下载学习源码之前需要先将源码下载下来,这里需要下载mybatis源码和mybatis-parent源码,下载地址如下:下载mybatis源码时选择对应的Release版本:下载完
不入大厂不改名
·
2022-02-11 17:15
SpringBoot
源码解读
系列三——引导注解
我们再来看下SpringBoot应用的启动类:查看代码importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.web.bind.annotation.RequestMapp
为了生活,加油
·
2022-02-11 16:00
jdk
源码解读
-集合-HashMap(jdk8)
一.HashMap的由来:1.array是数组的数据结构,对于随机访问get和set是优势,对于新增和删除是劣势,因为新增和删除要移动数据。LinkedList链表的数据结构,新增和删除头或尾节点操作是优势,因为不用移动数据。对于随机访问get和set是劣势,因为LinkedList要移动指针。3.hashmap是上面两者的结合,链表数组,从jdk8开始hashmap是array+链表+红黑树(加
陈阳001
·
2022-02-11 16:39
SpringBoot
源码解读
系列——开篇
什么是SpringBoot?定义可以参考官网:SpringBoot官网,其定义通俗易懂,这里就不赘述。官网也给出了一个通用的SpringBoot工程样例,其中包含了这么几个元素:1、pom依赖4.0.0org.springframework.bootspring-boot-starter-parent2.6.2com.zengdandemo0.0.1-SNAPSHOTdemoDemoproject
为了生活,加油
·
2022-02-11 14:00
JDK1.7中HashMap为何会出现死循环问题的
源码解读
JDK1.7中HashMap死循环问题
源码解读
。
39D
·
2022-02-11 14:04
tomcat源码浅析-从一次http请求谈起
在之前的专题spring
源码解读
系列中,我们分析了spring的源码,详细分析了spring的ioc和aop的实现原理。
默写流年
·
2022-02-11 11:14
阿里P8Java架构师是如何规划架构体系的呢?
TomcatMysqlSpringIOCSpringAOPSpringMVCSpring5新特性Mybatis分布式架构架构核心服务层技术架构关键技术设施分布式消息通讯异步于MQ分布式缓存RedisMemcachedMongoDB数据存储高并发分流技术Nginx分布式解决方案应用框架
源码解读
微服务专题你还不知道微服务
Java黎先生
·
2022-02-11 07:00
上一页
29
30
31
32
33
34
35
36
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他