This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Inner class can have static field if they are compile time constants. In your code, a is assigned to a compile time constant. while obj is not. u can refer the following link to get an idea about constant expressions. JLS 15.28