![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 95
TechMerger
Android平台资深从业者,公众号「Tech Merger」。
展开
-
如何优雅地单元测试 Kotlin/Java 中的 private 方法?
翻译自首先,开发者应该测试代码里的 private 私有方法吗?直接信任这些私有方法,测试到调用它们的公开方法感觉就够了吧。对于这个争论,每个开发者都会有自己的观点。但回到开头的问题本身,到底有没有一种合适的途径来?截止到目前,在面对单元测试私有方法的问题时,一般有如下几种选择:不去测试私有方法 😜*(选择信任,直接躺平)*将目标方法临时改成 public 公开访问权限 😒(可我不愿意这样做,这不符合代码规范。作为一名开发者,我要遵循最佳实践。原创 2023-10-30 13:28:06 · 1732 阅读 · 0 评论 -
全方位探究似懂非懂的 CAS 机制~
求学、面试的时候会无法回避CAS话题,但对于其原理,总有种似懂非懂的感觉。CAS 机制全称:,即比较并替换,。也有叫做的,即比较并设置。比较:读取到了一个值 A,在将其更新为 B 之前,检查原值是否仍为 A替换 / 设置:YES 则将 A 更新为 B,结束;反之,重复上述操作直到成功为止这种机制在确保原子化操作、实现乐观锁的同时也无法避免一些缺陷,咱们从源码入手分析一下其原理、乐观锁和缺陷等各个细节。通过静态方法获得Unsafe实例接着通过 Unsafe 实例的 native 方法传入使用。原创 2023-03-12 12:13:55 · 295 阅读 · 0 评论 -
一文了解 Java 中 so 文件的加载原理
无论是 Android 开发者还是 Java 工程师应该都有使用过 JNI 开发,但对于 JVM 如何加载 so、Android 系统如何加载 so,可能鲜有时间了解。本文通过代码、流程解释,带大家快速了解其加载原理,扫清困惑。总体流程可以归纳如下:System类提供的load()加载 so 的完整的路径名且带文件后缀,等同于直接调用Runtime类提供的 load();用于加载指定 so 的名称,等同于调用Runtime类提供的 loadLibrary()。两者都将通过。原创 2023-01-30 21:41:05 · 2088 阅读 · 0 评论 -
Array,List,Set及Map遍历内容的方法探究
日常开发中我们经常遇到需要打印集合内容的情况。有些是按照业务需求输出数据,存在特定的格式和要求。有些是为了调试的时候临时输出数据,对格式没有特定的要求。按照这些场合可以选择不一样的打印方法,恰到好处。Array数组是最常见的数据结构,使用频率最高,我们先来谈谈它。最常见的打印方法就是遍历数组取得对应下标的元素,简单直接。简称它为"传统遍历法"。for (int i = 0; i < array.length; i++) { System.out.println("array原创 2020-07-19 17:01:39 · 423 阅读 · 0 评论