Hutool 39 New May 2026

Prior to 3.9, generating unique IDs usually meant IdUtil.fastSimpleUUID(). In 3.9, the team introduced a more robust wrapper for distributed ID generation.

What is new?

Code Example (New in 3.9):

// Before 3.9 (Verbose)
SnowflakeIdWorker worker = new SnowflakeIdWorker(0, 0);
long id = worker.nextId();
String idStr = Long.toString(id);

// New in 3.9 (One line) String distributedId = IdUtil.getSnowflakeNextIdStr(); Console.log("Safe for JS: {}", distributedId); hutool 39 new

You need to export a list of 10,000 users to CSV. Old Java requires FileWriter, BufferedWriter, and manual append(",") loops. New in 3.9:

CsvWriter writer = CsvUtil.getWriter("users.csv", CharsetUtil.CHARSET_UTF_8);
writer.writeHeaderLine("ID", "Name", "Email");
writer.writeLine(userList.stream().map(u -> new Object[]u.getId(), u.getName(), u.getEmail()).toArray());
writer.close();

The 3.9 version introduced automatic flushing and better character escaping (for commas inside fields). Prior to 3

// HttpRequest and HttpUtil simplified usage
String body = HttpUtil.createGet("https://api.example.com/data")
                     .setTimeout(5000)
                     .execute()
                     .body();
LocalDateTime now = DateUtil.localDateTime();
String formatted = DateUtil.format(now, "yyyy-MM-dd HH:mm:ss");
Map<String, Object> merged = MapUtil.merge(mapA, mapB);

Before diving into code, let's break down the scope of this update. Version 6.0.0.M39 introduces:

If you are still on Hutool 5.x, you are missing out on performance gains of up to 40% in file I/O and first-class OAuth2 support.


In the bustling ecosystem of Java development, few libraries have managed to strike the perfect balance between power and simplicity quite like Hutool. For years, it has served as the "Swiss Army knife" of Java, reducing boilerplate code in projects ranging from microservices to legacy enterprise applications. Code Example (New in 3

But the search term "hutool 39 new" (referring to version 3.9.x) has been gaining traction. Why? Because this iteration marks a pivotal shift. Version 3.9 is not just a patch; it is a bridge between the proven utilities of the past and the modern demands of high-performance, cloud-native Java.

Let’s dissect what makes Hutool 3.9 "new," why you should upgrade, and how these specific features solve real-world coding frustrations.


A long-awaited fix: Hutool 39 can now copy nested objects without stack overflow from cyclic references.

class Employee  Manager manager; 
class Manager  Employee employee;

Employee e1 = new Employee(); // Deep copy now uses IdentityHashMap to break cycles. Employee e2 = BeanUtil.copyProperties(e1, Employee.class, CopyOptions.create().setIgnoreCyclic(true));