1. ? 和 !! ?加在变量名后,系统在任何情况不会报它的空指针异常。!!加在变量名后,如果对象为null,那么系统一定会报异常! 上述是两...
第一、前言 ThreadLocal使用的是自定义的ThreadLocalMap,接下来我们来探究一下ThreadLocalMap的hash冲突解...
第一、前言 有些程序员在使用ThreadLocal的过程中会发现有内存泄漏的情况,就猜测这个内存泄漏与Entry中使用了弱引用的key有关系。 ...
1. 什么是插桩? 用通俗的话来讲,插桩就是将一段代码通过某种策略插入到另一段代码,或替换另一段代码。这里的代码可以分为源码和字节码,而我们所说...
Handler相关 1. 用一句话概括Handler,并简述其原理 Handler是Android系统的根本,在Android应用被启动的时候,...
1. 可以用今日头条的适配方式,修改系统的density 1.1 先确定按宽还是高为基准,进行缩放适配。举例选宽1.2 代码中获取设备的宽的像素...
CoroutineScope: 定义新协程的范围。每个协程构建器都是CoroutineScope的扩展,并继承其coroutineContext...
在之前写过这样的一个例子,先来回顾一下: 也就是来演示runBlocking与coroutineScope之间的异同点,当时还阐述了一个对它的理...
上一篇最后对Kotlin中Lambda表达式传参这块进行了代码说明,由于这块比较容易引起混淆,所以再基于上次的程序再来巩固一下,先回顾一下上一次...