It is a very simple question, but I think it is a little bit controversial.
When I code Java classes I use the following order.
class Foo {
// stati
It's all a matter of preference, of course...
Your convention is more consistent with the default ordering in Javadoc (i.e. static and non-static methods mixed together). This is what I normally do, too.
However, inner classes are often placed at the bottom of a class as they are often 'secondary' or 'helper' classes, and it seems odd to put them before the main meat of the outer class.