首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏技术杂货店

    java集合【10】——— LinkedList源码解析

    浅拷贝 实现Serializable,可以被序列化和反序列化 下面是LinkedList的结构,注意:指针结束指向的是node,开始的是prev或者next [20201129152058.png] 源码定义如下 常用List方法解析 4.1 查找相关 4.1.1 getFirst() 获取第一个元素: public E getFirst() { // 保存第一个元素为f,注意是final LLSpliterator<E> implements Spliterator<E> { // 分割长度增加单位 static final int BATCH_UNIT = 1 << 10

    55800发布于 2020-12-05
  • 来自专栏黄腾霄的博客

    2019-10-25-slmgr源码解析

    WScript.Arguments.Item(indexOption) LineOut "" Call DisplayUsage() End If End Sub Connect的源码如下 源码有部分删减,其中过程是获得一个叫“Version”的服务对象,从所有产品列表中检查是否是指定的产品,进行激活并更新状态。

    69220发布于 2020-06-10
  • 来自专栏高级前端工程师必备

    react源码解析10.commit阶段

    react源码解析10.commit阶段 视频讲解(高效学习):进入学习 往期文章: 1.开篇介绍和面试题 2.react的设计理念 3.react源码架构 4.源码目录结构和调试 5.jsx&核心api 6.legacy和concurrent模式入口函数 7.Fiber架构 8.render阶段 9.diff算法 10.commit阶段 11.生命周期 12.状态更新流程 13.hooks源码 14. 现在让我们来看看mutation阶段的三个函数分别做了什么事情 commitBeforeMutationEffects 该函数主要做了如下两件事 执行getSnapshotBeforeUpdate 在源码中 所以适用于数据请求等副作用的处理 注意,和在render阶段的fiber node会打上Placement等标签一样,useEffect或useLayoutEffect也有对应的effect Tag,在源码中对应 如果是ClassComponent会执行componentWillUnmount,删除fiber,如果是FunctionComponent 会删除ref、并执行useEffect的销毁函数,具体可在源码中查看

    36430编辑于 2021-12-07
  • 来自专栏高级前端工程师学习必备

    react源码解析10.commit阶段

    react源码解析10.commit阶段 视频课程(高效学习):进入课程 课程目录: 1.开篇介绍和面试题 2.react的设计理念 3.react源码架构 4.源码目录结构和调试 5.jsx&核心api 6.legacy和concurrent模式入口函数 7.Fiber架构 8.render阶段 9.diff算法 10.commit阶段 11.生命周期 12.状态更新流程 13.hooks源码 14. 现在让我们来看看mutation阶段的三个函数分别做了什么事情 commitBeforeMutationEffects 该函数主要做了如下两件事 执行getSnapshotBeforeUpdate 在源码中 所以适用于数据请求等副作用的处理 注意,和在render阶段的fiber node会打上Placement等标签一样,useEffect或useLayoutEffect也有对应的effect Tag,在源码中对应 如果是ClassComponent会执行componentWillUnmount,删除fiber,如果是FunctionComponent 会删除ref、并执行useEffect的销毁函数,具体可在源码中查看

    54700发布于 2021-06-10
  • 来自专栏react源码分析

    react源码解析10.commit阶段

    null;现在让我们来看看mutation阶段的三个函数分别做了什么事情commitBeforeMutationEffects该函数主要做了如下两件事执行getSnapshotBeforeUpdate 在源码中 所以适用于数据请求等副作用的处理 > 注意,和在render阶段的fiber node会打上Placement等标签一样,useEffect或useLayoutEffect也有对应的effect Tag,在源码中对应 { insertOrAppendPlacementNode(finishedWork, before, parent); } } **commitWork更新节点:** 在简化后的源码中可以看到 如果是ClassComponent会执行componentWillUnmount,删除fiber,如果是FunctionComponent 会删除ref、并执行useEffect的销毁函数,具体可在源码中查看 nextEffect); } nextEffect = nextEffect.nextEffect; } } **commitLayoutEffectOnFiber:** 在源码

    55630编辑于 2023-01-02
  • 来自专栏react源码分析

    react源码解析10.commit阶段

    null;现在让我们来看看mutation阶段的三个函数分别做了什么事情commitBeforeMutationEffects该函数主要做了如下两件事执行getSnapshotBeforeUpdate 在源码中 所以适用于数据请求等副作用的处理 > 注意,和在render阶段的fiber node会打上Placement等标签一样,useEffect或useLayoutEffect也有对应的effect Tag,在源码中对应 { insertOrAppendPlacementNode(finishedWork, before, parent); } } **commitWork更新节点:** 在简化后的源码中可以看到 如果是ClassComponent会执行componentWillUnmount,删除fiber,如果是FunctionComponent 会删除ref、并执行useEffect的销毁函数,具体可在源码中查看 nextEffect); } nextEffect = nextEffect.nextEffect; } } **commitLayoutEffectOnFiber:** 在源码

    24610编辑于 2022-11-14
  • 来自专栏用户8771298的专栏

    react源码解析10.commit阶段

    react源码解析10.commit阶段 视频讲解(高效学习):进入学习 往期文章: 1.开篇介绍和面试题 2.react的设计理念 3.react源码架构 4.源码目录结构和调试 5.jsx&核心api 6.legacy和concurrent模式入口函数 7.Fiber架构 8.render阶段 9.diff算法 10.commit阶段 11.生命周期 12.状态更新流程 13.hooks源码 14. 现在让我们来看看mutation阶段的三个函数分别做了什么事情 commitBeforeMutationEffects 该函数主要做了如下两件事 执行getSnapshotBeforeUpdate 在源码中 所以适用于数据请求等副作用的处理 注意,和在render阶段的fiber node会打上Placement等标签一样,useEffect或useLayoutEffect也有对应的effect Tag,在源码中对应 如果是ClassComponent会执行componentWillUnmount,删除fiber,如果是FunctionComponent 会删除ref、并执行useEffect的销毁函数,具体可在源码中查看

    33030编辑于 2021-12-02
  • 来自专栏技术杂货店

    java集合【10】——— Vector超级详细源码解析

    定义源码如下: public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable : public Vector() { this(10); } 4.指定集合初始化: public Vector(Collection<? , elementCount); } } 保证容量的函数,其实相当于手动扩容,参数是所需要的最小的容量,里面调用的ensureCapacityHelper()在上面add()函数解析的时候已经说过了 ,不再解析。 因为它们相当于后移了 cursor = i + 1; lastRet = -1; } } 6.3 VectorSpliterator 直接看源码

    66010编辑于 2022-02-15
  • 来自专栏JavaEdge

    JDK源码解析实战 - AbstractQueuedSynchronizer源码解析

    tryAcquire 方法 AQS 中直接抛出一个异常,表明需要子类去实现,子类可以根据同步器的 state 状态来决定是否能够获得锁,接下来我们详细看下 acquire 的源码解析。 png]AQS 对其只是简单的实现,具体获取锁的实现方法还是由各自的公平锁和非公平锁单独实现,实现思路一般都是 CAS 赋值 state 来决定是否能获得锁(阅读后文的 ReentrantLock 核心源码解析即可 来一起研究本小节源码。 最后抢到锁返回了,那么如果被中断过的话,就需要补充一次中断 总结 AQS 的源码实在是太多了,我们只研究核心源码,其他部分源码都可以参考研究。

    1.2K1513发布于 2020-05-09
  • 来自专栏JavaEdge

    JDK源码解析实战 - AbstractQueuedSynchronizer源码解析

    tryAcquire 方法 AQS 中直接抛出一个异常,表明需要子类去实现,子类可以根据同步器的 state 状态来决定是否能够获得锁,接下来我们详细看下 acquire 的源码解析。 AQS 对其只是简单的实现,具体获取锁的实现方法还是由各自的公平锁和非公平锁单独实现,实现思路一般都是 CAS 赋值 state 来决定是否能获得锁(阅读后文的 ReentrantLock 核心源码解析即可 来一起研究本小节源码。 ? 最后抢到锁返回了,那么如果被中断过的话,就需要补充一次中断 总结 AQS 的源码实在是太多了,我们只研究核心源码,其他部分源码都可以参考研究。

    1.3K21发布于 2020-05-26
  • 来自专栏react源码分析

    react源码解析10.commit阶段_2023-02-27

    现在让我们来看看mutation阶段的三个函数分别做了什么事情 commitBeforeMutationEffects 该函数主要做了如下两件事 执行getSnapshotBeforeUpdate 在源码中 所以适用于数据请求等副作用的处理 > 注意,和在render阶段的fiber node会打上Placement等标签一样,useEffect或useLayoutEffect也有对应的effect Tag,在源码中对应 insertOrAppendPlacementNode(finishedWork, before, parent); } } **commitWork更新节点:** 在简化后的源码中可以看到 如果是ClassComponent会执行componentWillUnmount,删除fiber,如果是FunctionComponent 会删除ref、并执行useEffect的销毁函数,具体可在源码中查看 nextEffect); } nextEffect = nextEffect.nextEffect; } } **commitLayoutEffectOnFiber:** 在源码

    35310编辑于 2023-02-27
  • 源码】spring源码解析

    在案例分析中,我们可以以一个简单的示例来解析 Spring 框架的源码。假设我们有一个简单的 Web 应用程序,需要实现用户管理的功能,包括用户的增删改查。 同时,我们也可以通过调试源码的方式来进一步了解 Spring 框架的内部实现细节。

    20510编辑于 2025-08-29
  • 来自专栏爪哇缪斯

    (六)Spring源码解析:Spring AOP源码解析

    ,后续我们会针对这两个方法进行解析。 = this.aspectBeanNames; // 步骤1:如果aspectNames为空,则试图从IOC中解析出Aspect的beanName列表 if (aspectNames 获得普通增强器 getAdvisor(...)方法的源码如下所示: a> 步骤1:获得切点表达式的相关信息 下面我们来看一下步骤1中的获得切点表达式的相关信息的getPointcut(...)方法源码逻辑 更多技术干货,欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享,每天更新」 往期推荐 (五)Spring源码解析:ApplicationContext解析 (四)Spring源码解析 :bean的加载流程 (三)Spring源码解析:自定义标签解析 (二)Spring源码解析:默认标签解析 (一)Spring源码解析:容器的基本实现

    1.3K30编辑于 2023-09-06
  • 来自专栏JavaEdge

    Mybatis#BaseExecutor源码解析BaseExecutor源码解析

    executor = (Executor) interceptorChain.pluginAll(executor); return executor; } BaseExecutor源码解析

    1.4K60发布于 2018-10-10
  • Spring 源码:深度解析AOP源码配置解析

    一、 解析AOP配置的入口1.1 从XML配置到AOP Namespace的解析流程流程解析:加载配置文件:Spring 应用启动时加载 XML 配置文件。 解析切点:当解析到 <aop:pointcut> 元素时,Spring 会创建一个切点,并指定切点的 ID 和表达式。 1.2 分析注解驱动的AOP配置解析流程解析流程:扫描组件:Spring 应用启动时,会扫描指定的包路径下的组件,并解析其中的注解。 负责解析 <aop:config> 标签中的配置信息,并将解析结果应用到 Spring 的 Bean 定义中。 主要责任:解析 AOP 配置信息:解析<aop:config> 标签及其子标签中的配置信息,包括切面定义、通知类型、切点表达式等。

    44700编辑于 2025-01-08
  • 来自专栏深入理解Android

    开源框架源码解析系列(2)——LeakCanary源码解析

    LeakCanary是一个开源的,可以用来检测activtiy或者fragment内存泄漏的框架,本篇我们来学习这个框架的源码。 leakcanary-android:2.0-alpha-2' } 然后在application执行如下代码: LeakCanary.install(this); 然后出现内存泄露时候就会出现通知弹窗 2.源码分析 Throwable e) { return failure(e, since(analysisStartNanoTime)); } } 1.创建HprofParser,这个时另一个库里的,用来解析

    2.2K10编辑于 2022-06-22
  • 来自专栏全栈程序员必看

    spring ioc源码解析_spring事务源码深度解析

    SpringApplication源码解析 运行SpringApplication的方式 在创建SpringBoot应用,我们经常看到 SpringApplication.run(ApplicationConfiguration.class 其实因为SpringApplication在创建的时候,做了 推断Web应用类型 我们来看看SpringApplication构造方法源码 public SpringApplication(ResourceLoader 这里要注意优选级问题,如果你的优先级低于ConfigFileApplicationListener的优先级,那你这里获取name是获取不到的 推断实际启动引导类 最后便是推断实际启用引导类,老规矩,看看源码 and continue } return null; } 这里可以看到,它推断是获取所有线程,然后取出线程的方法名为main的类名,进行实现的 分析SpringApplication.run()方法 源码解析 先上一波源码,再逐一分析 public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new

    86530编辑于 2022-09-30
  • 来自专栏程序员备忘录

    CyclicBarrier 源码解析

    那么我们还是按照初始化方法的顺序来看看源码吧! ? 其中parties就是线程的数量,barrierAction就是回调函数。可以看出实例化就做了这些事情。

    44720发布于 2020-08-25
  • 来自专栏Java学习录

    SpringJDBC源码解析

    jdbcService.updateNameById(1,"李四"); jdbcService.queryById(1); } } 至此Deno工程搭建完毕,有需要源码的同学可以从下方地址获取 " [" + sql + "]" : "")); } //根据具体的连接池组件获取数据库连接,这里就不深入研究了,放到以后的连接池源码解析里 Connection con = DataSourceUtils.getConnection ) > 4000) { // Necessary for older Oracle drivers, in particular when running against an Oracle 10

    1.2K20发布于 2019-08-28
  • 来自专栏IT云清

    LinkedBlockingQueue源码解析

    LinkedBlockingQueue: Executors.newFixedThreadPool(3); Executors.newSingleThreadExecutor(); 下面分析一下源码中几个关键属性和方法

    1K20发布于 2019-01-22
领券