6 LeoJWJ

尚未进行身份认证

我要认证

如果不努力,你永远不知道自己有多牛逼。

等级
TA的排名 31w+

LeetCode刷题记录 -- 142. 环形链表 II

142. 环形链表 II解题思路分为两个阶段思考判断是否有环如果有环,得出环的入口节点第一阶段参考141 环形链表篇。主要是第二阶段如何得出环的入口节点。 首先先说方法,额外初始化两个指针ptr1指向链表头,ptr2指向相遇点。之后两个指针都已步长为1的速度前进,当两者相遇时,这个节点就是环的入口节点。为什么两个指针,一个指向链表头,一个指向相遇点,已同样步长前进,最后会在环...

2019-11-05 23:17:19

LeetCode刷题记录 -- 141 环形链表

环形链表解题思路不考虑额外空间消耗的话可以通过记录链表的所有点,当重复时,就说明有环不引入其他额外的空间消耗的话,可以使用快慢指针来实现。快指针步长为2,慢指针步长为1终止条件,快指针指向null,或者快指针的下一个节点指向null,或者快慢指针相遇如果快指针指向null,那么表示链表无环,如果快慢指针相遇,表示有环边界条件需要考虑给定的链表头指向的就是null因为涉...

2019-11-05 23:15:30

LiveEventBus源码分析

上一篇博客讲了LiveData的原理,基于此,这篇博客讲讲LiveEventBus源码。(本篇文章不讲如何使用,只分析代码,想了解的可以看GitHub上的项目介绍)基于LiveEventBus版本:1.5.2初始化先看一下初始化流程。LiveEventBus .config() //配置支持跨进程、跨APP通信,传入Context .su...

2019-10-09 20:57:44

LiveEventBus源码分析--LiveData原理分析

文章目录什么是LiveDataLiveData能为我们做什么LiveData简单使用源码分析在项目组件化过程中使用了LiveEventBus来充当事件总线的角色,所以通过几篇博客来分析一下它的原理。因为LiveEventBus主要是依靠LiveData来实现事件分发机制的,所以本篇文章先分析一下LiveData的原理。什么是LiveData什么是LiveDataLiveData是一个数据持...

2019-10-07 21:26:29

ARouter源码解析(四)-- arouter-compiler模块分析(APT流程)

https://blog.csdn.net/xiaxl/article/details/79585042#commentBox在ARouter中有很多自动生成的文件,其中可以看ARouter github上的demo项目,编译文成之后在app->build->generated->source->apt->debug->comm.alibaba.android...

2019-09-26 21:27:17

ARouter源码解析(三)-- Provider和Interceptor源码分析

文章目录往期文章ARouter源码解析(一)-- 初始化分析ARouter源码解析(二)-- 路由跳转流程分析

2019-09-16 22:42:55

ARouter源码解析(二)-- 路由跳转流程分析

本文将对ARouter的整个路由过程进行分析

2019-09-04 22:32:32

ARouter源码解析(一)-- 初始化分析

文章目录初始化流程分析ARouter.init_ARouter.initLogisticsCenter.init_ARouter.afterInit总结目前项目做了组件化,接下来的时间会把组件化过程中涉及到的技术点和遇到的坑通过博客的形式写出来,希望能对大家有所帮助。在组件化的过程中肯定会涉及到组件间跳转通信的问题,这就要引入本章需要讲到的技术点–路由了。目前几种路由解决方案中,ARouter...

2019-09-04 22:14:36

理解ECMAScript中的this指向

在刚开始学习js时,this指向问题就是一个大难题,啥时候指向实例对象,啥时候指向全局对象(一般是window 对象)。下面让我们通过几个例子来搞懂this指向问题。说明一下,这篇文章是基于es5语法的,不包括es6中的剪头函数。后面会有一章专门讲剪头函数。开头首先说一下结论,this指向的对象在函数定义时是确认不了的,只有在函数被调用时才能确定。而实际上this指向的也就是函数的调用对象...

2019-08-01 08:34:43

Kotlin学习---函数的定义和调用(下)

1.1 处理集合:可变参数、中缀调用和库的支持1.1.1 扩展Java集合的API1.1.2 可变参数:让函数支持任意数量的参数1.1.3 键值对的处理:中缀调用和解构声明1.2 字符串和正则表达式的处理1.2.1 分割字符串1.2.2 正则表达式和三重引号的字符串1.2.3 多重引号的字符串1.3 让你的代码更整洁:局部函数和扩展1.1 处理集合:可变...

2018-09-17 08:12:54

Kotlin学习---函数的定义和调用(上)

上一篇文章中,我们对Kotlin中的类,属性,函数,目录结构等等有了一个大致的了解,在这篇文章中,将对Kotlin中函数相关的特性做介绍。1.1 在Kotlin中创建集合1.2 让函数更好调用1.2.1 命名参数1.2.2 默认参数值1.2.3 消除静态工具类:顶层函数和属性1.3 给别人的类添加方法:扩展函数和属性1.3.1 导入和扩展函数1.3.2 从Java中调用...

2018-08-20 22:34:16

使用Android studio查看Kotlin的字节码

Kotlin是一门JVM语言,它被google大力推广,现如今已经是Android官方推荐的开发语言了。为了更好的学习Kotlin,你必须要从字节码的角度来看待语法特点,这样可以更好的加深自己的理解。这篇文章就是教大家如何通过Android studio来查看Kotlin编译后的字节码。 1. 首先选中你要显示字节码的文件,之后点击顶部工具栏中的 Tools ->选中 Kotlin -&g...

2018-08-20 22:28:04

Kotlin学习---Kotlin基础

Kotlin学习这个系列文章是我在阅读了 《Kotlin In Action》 书籍之后,按照书籍中的目录结构写的。有几点需要说明一下: 1. 写这个系列的文章,首先是想巩固一下自己学习的东西,同时查漏补缺。其次也希望让更多的人能够学习和了解到Kotlin这门语言。 2. 大家看完之后有任何的疑惑,意见和建议都可以提出来,我们可以一起探讨。 3. 书籍中分两大部分,一是Kotlin简介(当然...

2018-08-11 14:55:03

升级Android studio3.0之后的一些异常记录

最近把Android studio升级到了3.1.2版本,踩了很多的坑。本篇博客记录一下升级过程中遇到的问题以及解决方案。 本篇文章不会对网络上大部分都有的问题在重复做列举,如果大家遇到了升级中的其他问题可以看下面两篇文章:迁移到 Android Plugin for Gradle 3.0.0,这是一篇Android官方的文章,偏理论一些。Android Studio 3.0 新功能解析...

2018-05-26 10:16:33

插件打包流程优化(自定义Gradle Task)

最近在做一些项目的优化,其中有一项就是对打包插件包的流程优化,本篇文章就是记录一下在优化过程中自己做的事情,并给出遇到问题的一个解决方案。通过这篇文章读者能够了解到如何自定义Task,并且通过Task如何解决实际的项目问题。(PS:本篇文章不对Gradle Task做很详细的介绍,如果对Task不是很了解可以通过 Android Gradle 自定义Task 详解 这篇博文做详细的了解。)...

2018-05-13 13:22:25
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。