JavaOne, day one

Note to self: next time, when taking a camera to a conference (or anywhere for that matter) make sure it's fully charged before you leave - oh well, as least I did manage to get this cool shot of the Java on the Longhorn Beta, using a swing Longhorn Look & Feel.

The first "session" I attended yesterday was the JavaOne keynote and I decided there was no need to take notes - I should be able to remember everything important, right? wrong - won't make that mistake again and have been turning on the laptop at subsequent sessions to jot down various notes. The keynote contained quite a bit of info on J2ME, which I haven't played around with yet and also had some good info on the JDK 5.0. They redid the numbering and decided to go from version 1.4 to 5.0. My initial thought was that this would be a good thing as it may clear up some confusion between "Java 2" and JDK1.x, but it's actually still "J2SE, J2EE, J2ME", they're just version 5.0 now. Does anybody expect there to ever be a J3SE? As far as I'm concerned, they should've called in JSE 5, JEE 5 & JME 5 but oh well, I guess I'm used to it now anyway...

After the keynote I walked the exhibition floor and got me some free t-shirts to replace the worn out ones I got when I was here four years ago :-)

Then the session began. My first was "Fast Track to J2SE 5.0", which was a bit too much of a general overview of features for my liking, but I guess that was to be expected when you only have one hour to cover so much new stuff. There were a few interesting tidbits I picked up though:

  • There will be less reliance on command line flags to tune JRE performance as it will support adaptive self tuning in 5.0. If this works as advertised, it will be a great improvement, as dealing with stuff like SurvivorRatio, NewSize, etc. can be quite a pain right now.
  • Covariant return types are pretty cool - This will allow you to, when overriding a method, declare your method to return a subclass of the return type of the original method.
  • System.out.printf - it's about time!
  • There's no scanf, but you can use the new Scanner class
  • There was a small introduction to the concurrency utils package, which will bring goodies like semaphores, threadpools and much more.
  • Thread dumps will become even more useful through the addition of Thread.getAllStackTraces(). (Microsoft: are you listening? please add thread dump functionality to .NET!)
  • CachedRowSet (a disconnected rowset) reminded me a lot of the .NET DataSets.
I'll blog later with some more info on other sessions I attended yesterday...