Java Reflection 修改 private static final 字段

排查内存泄漏问题时,经常需要反射修改字段值。在 Stack Overflow 上看到一个高质量回答,整理如下。 ...

2015年6月16日 · 2 分钟 · haoxiqiang

Gson 使用指南

本文基于 Gson 官方用户指南整理而成。相对于其他 JSON 框架,Gson 的性能并不逊色,加上 Google 官方维护的背景,成为 Java/Android 项目中处理 JSON 的首选。以下是对官方文档的全面梳理和备忘。 Gson 是 Google 开发的 Java 库,用于将 Java 对象序列化为 JSON 表示,以及将 JSON 字符串反序列化为 Java 对象。 ...

2015年6月8日 · 7 分钟 · haoxiqiang

Cache Algorithms

缓存算法(Cache Replacement Policies)决定缓存空间满时哪些数据被淘汰,对系统性能有直接影响。以下是常见的缓存淘汰算法概览。 ...

2015年5月5日 · 1 分钟 · haoxiqiang

Design Patterns

设计模式(Design Patterns)是面向对象设计中针对常见问题的可复用解决方案。1994 年由 GoF (Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides) 在 Design Patterns: Elements of Reusable Object-Oriented Software 一书中系统总结,共 23 种经典模式。 本文整理自 smallnest 的博客文章,以及 StackOverflow 上关于 GoF 设计模式在 Java API 中应用实例的讨论。 查看PDF概览图 ...

2015年3月30日 · 2 分钟 · haoxiqiang

Java HashMap 的实现原理

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

2014年12月27日 · 3 分钟 · 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