I would modify points 1 and 12.
Point#1: If you have a non final variable in a class the value must be assigned before constructor ends. If you have overloaded constructor then YOU HAVE to assign value to the final variable to all the overloaded constructors. I think what you meant to say here is blank final variable. If an instance variable is a blank final variable (a final variable declaration without an initializer), then that final variable must be definitely assigned by the end of every constructor or in an instance initializer block. If a non-final instance variable is not initialized by an initializer, initializer block, or a constructor, then it will be given a default value when an instance of the class is created.
Point#12: inner classes can not have static variables unless the inner class is declared static Technically, the
Java Language Specification calls a top-level nested class an inner class if it is not static. An inner class cannot contain a static member unless it is a final static member (a constant whose value can be resolved at compile-time).
Static nested classes can contain static members.
[ July 03, 2006: Message edited by: Keith Lynn ]