Java HashMap 的实现原理

HashMap 是 Java 面试中高频出现的题目,能有效考察候选人对数据结构和工程实现的理解。这篇文章梳理其核心设计思路与实现细节。 ...

2014年12月27日 · 3 分钟 · haoxiqiang

CSS Box Shadows 实用技巧

box-shadow 是 CSS3 中非常灵活的属性,用好它可以在纯 CSS 的情况下实现丰富的视觉效果。下面整理了几类常用技巧。 ...

2014年12月26日 · 2 分钟 · haoxiqiang

Android EBUSY Exception

最近写一个图片上传功能时,在某些手机上遇到了运行时异常: 1 2 3 4 5 6 7 8 9 java.io.FileNotFoundException: /mnt/sdcard/Android/data/com.xxxxxx.android/files/xxxx open failed: EBUSY (Device or resource busy) at libcore.io.IoBridge.open(IoBridge.java:406) at java.io.FileOutputStream.<init>(FileOutputStream.java:88) ... Caused by: libcore.io.ErrnoException: open failed: EBUSY (Device or resource busy) at libcore.io.Posix.open(Native Method) at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110) ... ...

2014年12月22日 · 1 分钟 · haoxiqiang

Tencent Interview

前几天看到 stormzhang 的腾讯面试题,拿来做一遍,记录下自己的解答思路。 面试题涉及的主要领域: Android 基础(进程、Activity、Handler) 屏幕适配(dp、dpi、资源目录) 多线程同步 系统设计(断点续传、网络请求架构) ...

2014年12月8日 · 2 分钟 · haoxiqiang

Java 8 的 Lambda 表达式

什么是 Lambda 表达式? Lambda 表达式是 Java 8 引入的核心特性,让代码更加简洁。先看一个最直观的例子: 1 2 3 4 5 6 7 8 9 10 Runnable runnable1 = new Runnable() { @Override public void run() { System.out.println("runnable1 start!!!"); } }; Runnable runnable2 = () -> System.out.println("runnable2 start!!!"); runnable1.run(); runnable2.run(); 两段代码完全等价,但 Lambda 版本只有一行。基本形式为 () -> expression 或 () -> { statements; }。 ...

2014年12月7日 · 2 分钟 · haoxiqiang

Android 使用 Wireless 调试

自从换了 Nexus 设备,就不太想用 USB 连电脑了。Android 支持通过 WiFi 进行 ADB 调试,完全可以摆脱数据线的束缚。 ...

2014年12月5日 · 1 分钟 · haoxiqiang

Android's SQLite

SQLite 是一个轻量级的关系型数据库引擎,Android 内置对其支持,非常适合本地数据持久化。无需额外配置,通过 android.database.sqlite 包下的 API 即可使用。 ...

2014年12月1日 · 1 分钟 · haoxiqiang

Android's Palette

Palette 是 Android Support Library(现已迁移至 AndroidX palette 库)提供的取色工具,可以从 Bitmap 中自动提取一组代表色。在 Material Design 中,从图片提取色彩并应用到 UI 元素是常见的设计手法,Palette 让这一过程变得非常简单。 ...

2014年11月3日 · 2 分钟 · haoxiqiang

Android 的 RecyclerView(二):视差滚动

视差滚动(Parallax Scrolling)是一种常见的 UI 效果:滚动时不同层次的元素以不同速度移动,营造立体感。 ...

2014年11月2日 · 1 分钟 · haoxiqiang

Android 的 RecyclerView

RecyclerView 是一个比 ListView 更灵活的滚动列表控件。官方文档指出,它能高效维护数量有限的滚动数据集合,当 View 需要与用户行为和网络数据交互时,推荐使用 RecyclerView。 ...

2014年11月1日 · 1 分钟 · haoxiqiang