独立博客档案 San Francisco

IO01 Blog

blog.io01.xyz

一个记录开发和折腾的数字后花园

持续收录 后台收录 认领博客
收录文章
14
篇文字被发现
文章访问
0
次从这里出发阅读
博客访问
0
次前往作者站点
最近更新
04.12
2023年

FROM THIS BLOG

最近文章

第 1 / 2 页

自建NAS方案选型-基建篇

前言 上一篇讲了在 2022 年底到 2023 年初一台性能还不错并且兼顾了兼容性的 NAS 硬件选型思路,算下来价格并不便宜,但是从兼容性和零件可替换性上还是不错的。本篇更多的是关心整体系统基建而非应用层软...

自建NAS方案选型-硬件篇

前言 之前使用的是多年前很火的威联通 453Bmini,2000 块钱 4 盘位的成品 NAS,性价比很高,开箱即用。虽然很多人认为可用性不如群晖,但是我个人的使用不喜欢依赖某一个品牌的生态,大多是开源组装的,所...

子线程更新 UI 全解

子线程更新 UI 异常设计理念及简单源码解析 初学者可能会犯在子线程更新 UI 的错误,例如: 1thread { imageView.setBackgroundColor(Color.RED) } 一旦运行,应用会直接崩溃并抛出异常,这也是我们 Andro...

使用阿里云效同步 Git 仓库到 Github

前言 有时 Github 网络的不稳定性实在令人头痛,push 总是失败,而且需要把主仓库放在 Github 而非 Gitee 等国内平台,虽然可以通过配置代理进行,不过也可以曲线救国,选择通过 push 到国内代码管理平台...

遵循 Google 应用指南的 Retrofit + Coroutine 封装

前言 Retrofit 从 2.6.0 以后对 Kotlin 协程提供了原生支持,使得异步请求从写法上更像同步调用,配合 Google 出的 Jetpack 全家桶可以使得网络请求更加优雅简单,而且可以完全遵循 Google 给出的应用架构...

MD5 计算前导 0 丢失问题

现象 我们使用 Java 生成 MD5 时常用的写法如下: 1private static String md5(String data) throws NoSuchAlgorithmException { 2 MessageDigest md = MessageDigest.getInstance("MD5"); 3 md.u...

从阿里规约谈起 - 包装类的值比较注意事项

前言 int、long 等基本数据类型值比较可以直接使用 == 比较,其包装类型:Integer、Long 如果直接使用 == 比较大小我们会发现一个神奇的现象。当然,阿里规约也对此做出强制规定: 【强制】 所有的相同类...

有趣的算法 - 布隆过滤器

引言 现在假设一个需求:设计一个 url 黑名单系统,需求是 1 亿个 url 黑名单,每个 url 平均长度 30 字节,判断当前的 url 是否在黑名单中。 我们最先想到的可能时 HashSet,如果少量的 url,HashSet 有...

从阿里规约谈起 - Arrays.asList 三坑

前言 将数组转换成 List 是日常开发十分常见的操作,对此 JDK 提供了一个非常好用的工具类: 1List list = Arrays.asList(array); 但是如果操纵 List 的内容的话,阿里规约会给出一个提示:...