Understanding Object Identity and Equality in Java

Peter Becker has a very good article on java.net that explains the differences between Object Identity and Object Equality.

If you have worked extensively with ORM solutions in Java, like Hibernate, then you are most likely already very familiar with the differences between Object Identity and Object Equality, and the implications and possible problems you can run into if you do not implement correct equals methods. This article gives a very good overview of the concepts and why they are important.

Scripting on Java SE 6.0 (Mustang)

JSR223 adds support for scripting languages to run on the Java platform. Any script engine the complies with the 223 spec will be able to run on top of the Java VM.

Why is this important? Think of script as your ‘glue’ – sometimes you need to get component/system/class A to work with B – scripting is an ideal and quick way to integrate and tie together code. It’s also a great quick approach to prototyping apps quickly. By being able to run scripting languages on the Java VM platform, you get the benefits of a statically typed compiled language with the ease of use of a dynamically typed script language.

See this article for further info on JSR223, and check here for a list of 10+ script engines currently supported by JSR223.

Sun’s SwingLabs – pushing Swing to the max

Want to see what the guys at Sun are doing with Swing to push the limits of Swing to the max? SwingLabs is a collection of projects to produce a collection of Swing Components and related frameworks that enhance Swing and enable you to produce some very slick looking UIs for your Java applications.

Head over to their site at swinglabs.org and check out the current projects and screenshots. There are some very interesting screenshots of very cool looking UI widgets that will make you say ‘wow, I can do that with Swing?’…

One of the subprojects looks particularly interesting – the Java Desktop Integration Components project (JDIC) – they are working on APIs to enhance Java’s ability to interact with the operating system’s desktop. Some of the APIs they currently have enable desktop wallpaper manipulation, SysTray integration (available now in SE 6.0 beta), access to System Info, and native music player access. Check out their introductory page here at javadesktop.org.