Java 1.0 was a great proof of concept, but if we’re honest, it was a bit painful to use for complex UI work. The original AWT (Abstract Window Toolkit) event model-where every event bubbled up through the component hierarchy-was slow and led to massive switch statements in our handleEvent methods.
Java 1.1 fixes this with the new "Delegation Event Model." Now, we can register specific listener objects for specific events. It’s much cleaner and much more performant.
Inner Classes
To support these new listeners without creating hundreds of tiny separate files, Sun has introduced "Inner Classes." This allows us to define a class within another class. It feels a bit like a hack at first, but it makes the code so much more readable.
// The new Java 1.1 way to handle a button click
Button b = new Button("Click Me");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Button clicked!");
}
});
Internationalization and JDBC
Version 1.1 also adds support for internationalization (Unicode 2.0) and JDBC (Java Database Connectivity). This is huge for those of us building enterprise software. We can finally write a Java app that talks to a SQL database in a standardized way.
Future Outlook
Java is no longer just for "applets" running in a browser. With the improvements in 1.1, it's becoming a serious contender for server-side development and complex desktop applications. If they can just fix the performance of the JVM, C++ might finally have some real competition.