Core Java
-
Use java.util.prefs.Preferences instead of java.util.Properties
A typical installer for an application needs to ask the user a couple of options and some of these are…
Read More » -
Java Micro-Benchmarking: How to write correct benchmarks
Several months ago, I wrote an article to compare the performances of short indexes for loops. I asked myself of…
Read More » -
Logging exceptions root cause first
The 0.9.30 release of Logback logging library brings new awesome feature: logging stack traces starting from root (innermost) exception rather…
Read More » -
Database schema navigation in Java
An important part of jOOQ is jooq-meta, the database schema navigation module. This is used by the code generator to…
Read More » -
Java Concurrency Tutorial – CountDownLatch
Some concurrency utilities in Java naturally get more attention than others just because they serve general purpose problems instead of…
Read More » -
Java Concurrency Tutorial – Blocking Queues
As discussed in Part 3, the thread pools introduced in Java 1.5 provided core support that was quickly a favourite…
Read More » -
Java Concurrency Tutorial – Callable, Future
One of the beautiful things about Java from its very first release was the ease with which we could write…
Read More » -
Java Concurrency Tutorial – Thread Pools
One of the most generally useful concurrency enhancements delivered in Java 1.5 was the introduction of customizable thread pools. These…
Read More » -
Java Concurrency Tutorial – Reentrant Locks
Java’s synchronized keyword is a wonderful tool – it allows us a simple and reliable way to synchronize access to…
Read More »