You probably have seen messages popping up in the system tray (or status area), such as "Low battery" or "Updates are ready to be installed", produced by system tray icons. Did you know it is possible to show these messages with Java SE 6?
Since I wrote the original post about measuring the size of any object using Java SE 5 beta, the process to get it to work has changed a little bit. People eventually try to achieve the task with the code posted and always complain they can't get it right, so here is a working sample :-)
If you are not aware, the way expressions such as MyClass.class are handled by the compiler changed starting with Java 5. The collateral effects can cause working to code to fail in a hard to diagnose way, so read this entry for more info.
I've been testing a large application we have written for one of customers in Tiger and I couldn't be more disappointed by how Java 5 broke support for dates in general. If you intend to upgrade your application to Tiger or if you are using it to manipulate dates, you should be aware of these issues.
If you deal with GUIs, do some printing in your applications, play with custom drawing, use report software or anything that deals with fonts in Java, be aware of an important limitation in the API.
What if the java.beans API told you a property in your bean should be read with a getter defined in your superclass, even if you've overridden it? And what if it was even better (or worse): if it only happened when you defined a setter for it? Well, it is true...
Have you ever wondered how much size do your objects take up in memory? Have you ever looked for a standard way of knowing that information which wasn't platform specific or relied on writing a native method by yourself? You can find out how to do that by reading this entry :-D
Do you like microbenchmarkings? Read for ways of doing nanobenchmarks in Java... :-D This is the first installment of a series of experiments with JDK 1.5, aka Tiger.
Java is notably the first programming language to provide full support for checked exceptions - you must explicitly declare them if you they are going to be thrown, you are forced to either handle or declare to throw them and more. However, after using them for a while, you start noticing that sometimes things don't work so well. I do like checked exceptions, but read this blog entry for some of my thoughts about how exceptions could be different (and sometimes, better)...
How do you query your objects in memory? How can you get subsets of them, averages of amounts and find out about which objects have been created after a specific date? That's all possible with Jakarta Commons JXPath.
Do you know there are very easy to use classes in the JSDK for compressing streams? Have you used them? Do you know you can compress your streams even more just by calling one method of a property we ignore? Yes, all of that is true and you can get the details here.
Suppose you have a J2SDK distribution that comes without documentation. How can you use it if you don't know which classes, methods and properties are there? Simple answer: build javadoc from its source code using Ant. Read this blog for a sample build file.
Have you already heard about the support for Enums that will be available in the next major release of J2SE, 1.5, also known as Tiger? If you know C enums, you are probably dying to use this new feature. Well, I have committed a new version of a Enum base class you can use right now for your projects and that gives you most features you'll get with J2SE 1.5 enums. Here I explain how it works.