240 发简信
  • Kotlin中的?、!!、?:、:: 、->、== 符号

    1. ? 和 !! ?加在变量名后,系统在任何情况不会报它的空指针异常。!!加在变量名后,如果对象为null,那么系统一定会报异常! 上述是两...

  • 120
    [转]ThreadLocal-如何解决哈希冲突

    第一、前言 ThreadLocal使用的是自定义的ThreadLocalMap,接下来我们来探究一下ThreadLocalMap的hash冲突解...

  • 120
    [转]ThreadLocal-探究内存泄漏及弱引用

    第一、前言 有些程序员在使用ThreadLocal的过程中会发现有内存泄漏的情况,就猜测这个内存泄漏与Entry中使用了弱引用的key有关系。 ...

  • 120
    [转]自定义Gradle插件 + ASM实现字节码插桩

    1. 什么是插桩? 用通俗的话来讲,插桩就是将一段代码通过某种策略插入到另一段代码,或替换另一段代码。这里的代码可以分为源码和字节码,而我们所说...

  • Handler全解析

    Handler相关 1. 用一句话概括Handler,并简述其原理 Handler是Android系统的根本,在Android应用被启动的时候,...

  • 关于UI 稿的适配

    1. 可以用今日头条的适配方式,修改系统的density 1.1 先确定按宽还是高为基准,进行缩放适配。举例选宽1.2 代码中获取设备的宽的像素...

  • 120
    kotlin协程[8]:再说作用域

    CoroutineScope: 定义新协程的范围。每个协程构建器都是CoroutineScope的扩展,并继承其coroutineContext...

  • 120
    kotlin协程[7]:深层揭示runBlocking与coroutineScope之间的异同

    在之前写过这样的一个例子,先来回顾一下: 也就是来演示runBlocking与coroutineScope之间的异同点,当时还阐述了一个对它的理...

  • 120
    kotlin协程[6]:挂起函数与全局协程实例分析

    上一篇最后对Kotlin中Lambda表达式传参这块进行了代码说明,由于这块比较容易引起混淆,所以再基于上次的程序再来巩固一下,先回顾一下上一次...